Spaces:
Paused
Paused
File size: 1,324 Bytes
48d903a 553c00b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | package logger
import (
"fmt"
"os"
"time"
)
type LogLevel int
const (
DEBUG LogLevel = iota
INFO
WARN
ERROR
)
var (
currentLevel LogLevel = INFO
levelNames = map[LogLevel]string{
DEBUG: "DEBUG",
INFO: "INFO",
WARN: "WARN",
ERROR: "ERROR",
}
// ANSI 颜色
levelColors = map[LogLevel]string{
DEBUG: "\033[36m", // 青色
INFO: "\033[32m", // 绿色
WARN: "\033[33m", // 黄色
ERROR: "\033[31m", // 红色
}
resetColor = "\033[0m"
)
func InitLogger() {
level := os.Getenv("LOG_LEVEL")
switch level {
case "debug", "DEBUG":
currentLevel = DEBUG
case "warn", "WARN":
currentLevel = WARN
case "error", "ERROR":
currentLevel = ERROR
default:
currentLevel = INFO
}
}
func log(level LogLevel, format string, v ...interface{}) {
if level < currentLevel {
return
}
timestamp := time.Now().Format("2006/01/02 15:04:05")
msg := fmt.Sprintf(format, v...)
fmt.Printf("%s[%s]%s %s %s\n", levelColors[level], levelNames[level], resetColor, timestamp, msg)
}
func LogDebug(format string, v ...interface{}) {
log(DEBUG, format, v...)
}
func LogInfo(format string, v ...interface{}) {
log(INFO, format, v...)
}
func LogWarn(format string, v ...interface{}) {
log(WARN, format, v...)
}
func LogError(format string, v ...interface{}) {
log(ERROR, format, v...)
}
|