Merge pull request '添加计时器,麦克风,摄像头开关' (#45) from develop-frontend8 into develop 33分钟前 #46
57
backend/internal/logger/logger.go
Normal file
57
backend/internal/logger/logger.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
// Log 是全局 SugaredLogger,由 Init 初始化。
|
||||
var Log *zap.SugaredLogger
|
||||
|
||||
// Init 初始化全局日志器。
|
||||
// level: "debug", "info", "warn", "error"
|
||||
// format: "json" 或 "console"
|
||||
func Init(level, format string) {
|
||||
var lvl zapcore.Level
|
||||
switch level {
|
||||
case "debug":
|
||||
lvl = zapcore.DebugLevel
|
||||
case "warn":
|
||||
lvl = zapcore.WarnLevel
|
||||
case "error":
|
||||
lvl = zapcore.ErrorLevel
|
||||
default:
|
||||
lvl = zapcore.InfoLevel
|
||||
}
|
||||
|
||||
encoderCfg := zap.NewProductionEncoderConfig()
|
||||
encoderCfg.TimeKey = "ts"
|
||||
encoderCfg.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
|
||||
var core zapcore.Core
|
||||
if format == "console" {
|
||||
core = zapcore.NewCore(
|
||||
zapcore.NewConsoleEncoder(encoderCfg),
|
||||
zapcore.AddSync(os.Stdout),
|
||||
lvl,
|
||||
)
|
||||
} else {
|
||||
core = zapcore.NewCore(
|
||||
zapcore.NewJSONEncoder(encoderCfg),
|
||||
zapcore.AddSync(os.Stdout),
|
||||
lvl,
|
||||
)
|
||||
}
|
||||
|
||||
logger := zap.New(core, zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel))
|
||||
Log = logger.Sugar()
|
||||
}
|
||||
|
||||
// Sync 刷新缓冲区,退出前调用。
|
||||
func Sync() {
|
||||
if Log != nil {
|
||||
_ = Log.Sync()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user