diff --git a/README.md b/README.md index dd4329c..0a5e8e7 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ func main() { lxrun.Run("prod", "8989", func() { //可执行定时器等等 fmt.Println("run cron、mq") - }, router, lxzap.LogConfig{ + }, router, lxzap.ZapLogConfig{ Level: "info", Filename: "zap.log", MaxSize: 2, diff --git a/go.sum b/go.sum index 418ea60..48591d3 100644 --- a/go.sum +++ b/go.sum @@ -84,6 +84,8 @@ go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= diff --git a/lxrun/run.go b/lxrun/run.go index a5a1c05..0dac9ef 100644 --- a/lxrun/run.go +++ b/lxrun/run.go @@ -18,7 +18,7 @@ import ( func Run(env string, port string, fun func(), r func(router *gin.Engine), zapConfig lxzap.ZapLogConfig, dbConf []lxDb.DbConfig, redisConf lxDb.RedisConfig) { _ = lxlog.InitLog() - err := lxzap.InitZapLogger(zapConfig) + err := lxzap.InitZapLogger(zapConfig, env) if err != nil { panic(err.Error()) } diff --git a/lxzap/lxzap.go b/lxzap/lxzap.go index 1a99c7c..741d5ce 100644 --- a/lxzap/lxzap.go +++ b/lxzap/lxzap.go @@ -33,29 +33,41 @@ type ZapLogConfig struct { } // InitZapLogger 初始化Logger -func InitZapLogger(cfg ZapLogConfig) (err error) { +func InitZapLogger(cfg ZapLogConfig, env string) (err error) { writeSyncer := getLogWriter(cfg.Filename, cfg.MaxSize, cfg.MaxBackups, cfg.MaxAge) - encoder := getEncoder() + encoder := getEncoder(env) var l = new(zapcore.Level) err = l.UnmarshalText([]byte(cfg.Level)) if err != nil { return } - core := zapcore.NewCore(encoder, writeSyncer, l) - + // 创建 zap 核心 + core := zapcore.NewCore( + encoder, + zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), writeSyncer), + l, + ) + if env != "dev" { + core = zapcore.NewCore(encoder, writeSyncer, l) + } + // 创建 zap 日志对象 Lg = zap.New(core, zap.AddCaller()) zap.ReplaceGlobals(Lg) // 替换zap包中全局的logger实例,后续在其他包中只需使用zap.L()调用即可 return } -func getEncoder() zapcore.Encoder { +func getEncoder(env string) zapcore.Encoder { encoderConfig := zap.NewProductionEncoderConfig() encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder encoderConfig.TimeKey = "time" encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder encoderConfig.EncodeDuration = zapcore.SecondsDurationEncoder encoderConfig.EncodeCaller = zapcore.ShortCallerEncoder - return zapcore.NewJSONEncoder(encoderConfig) + l := zapcore.NewConsoleEncoder(encoderConfig) + if env != "dev" { + l = zapcore.NewJSONEncoder(encoderConfig) + } + return l } func getLogWriter(filename string, maxSize, maxBackup, maxAge int) zapcore.WriteSyncer {