Taobin-Recipe-Manager/server/services/logger/logger.go

63 lines
1.6 KiB
Go
Raw Normal View History

2023-09-22 11:00:35 +07:00
package logger
import (
"os"
2023-12-06 20:21:25 +07:00
"recipe-manager/config"
2023-09-22 11:00:35 +07:00
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
2023-12-06 20:21:25 +07:00
type TaoLogger struct {
cfg *config.ServerConfig
enableDebug bool
Log *zap.Logger
}
2023-09-22 11:00:35 +07:00
2023-12-06 20:21:25 +07:00
func (tl *TaoLogger) initConfig() *zap.Logger {
2023-12-06 20:21:25 +07:00
enableDebugMode := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
return lvl >= zap.InfoLevel || tl.enableDebug
})
2023-09-22 11:00:35 +07:00
2024-06-03 10:12:16 +07:00
productionConfig := zap.NewProductionEncoderConfig()
productionConfig.EncodeTime = zapcore.ISO8601TimeEncoder
// fileEncoder := zapcore.NewJSONEncoder(productionConfig)
consoleEncoder := zapcore.NewConsoleEncoder(productionConfig)
// logCore := zapcore.NewTee(
// zapcore.NewCore(zapcore.NewJSONEncoder(productionConfig),
// zapcore.NewCore(zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
// TimeKey: "timestamp",
// LevelKey: "level",
// NameKey: "logger",
// CallerKey: "caller",
// MessageKey: "message",
// StacktraceKey: "error",
// EncodeLevel: zapcore.CapitalColorLevelEncoder,
// EncodeTime: zapcore.ISO8601TimeEncoder,
// }), zapcore.AddSync(os.Stdout), enableDebugMode),
// )
core := zapcore.NewTee(
// zapcore.NewCore(fileEncoder, zapcore.AddSync(), enableDebugMode),
zapcore.NewCore(consoleEncoder, zapcore.AddSync(os.Stdout), enableDebugMode),
2023-09-22 11:00:35 +07:00
)
2024-06-03 10:12:16 +07:00
return zap.New(core)
2023-09-22 11:00:35 +07:00
}
2023-12-06 20:21:25 +07:00
func NewTaoLogger(cfg *config.ServerConfig) *TaoLogger {
logger := &TaoLogger{cfg, false, nil}
logger.Log = logger.initConfig()
2023-09-22 11:00:35 +07:00
2023-12-06 20:21:25 +07:00
if cfg.Debug {
// logger.SetLevel("DEBUG")
logger.Log.Debug("Debug mode", zap.Bool("enable", cfg.Debug))
logger.enableDebug = true
}
2023-09-24 18:21:11 +07:00
2023-12-06 20:21:25 +07:00
return logger
}