From 6862737f479486e19a33d6804251ced89c28e1c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Tue, 31 May 2022 17:05:25 +0800 Subject: [PATCH] =?UTF-8?q?-=20log=EF=BC=9A=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + golog/golog.go | 47 ++++++++++++++++++++++++++++++++--------------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74798cc9..1bc0e7e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## v2022-05-31 - weChatOpen:增加 `WxaBusinessGetUserPhoneNumber` 方法 +- log:优化 ## v2022-05-30 diff --git a/golog/golog.go b/golog/golog.go index a09f3772..397e9a17 100644 --- a/golog/golog.go +++ b/golog/golog.go @@ -8,8 +8,7 @@ import ( "time" ) -type App struct { - Logger *zap.Logger +type ConfigGoLog struct { LogPath string // 日志文件路径 LogName string // 日志文件名 LogLevel string // 日志级别 debug/info/warn/error,debug输出:debug/info/warn/error日志。 info输出:info/warn/error日志。 warn输出:warn/error日志。 error输出:error日志。 @@ -22,11 +21,27 @@ type App struct { LogInConsole bool // 是否同时输出到控制台 } -func (app *App) InitLogger() { +type GoLog struct { + ConfigGoLog + Logger *zap.Logger +} + +func NewGoLog(config *ConfigGoLog) *GoLog { + g := &GoLog{} + g.LogPath = config.LogPath + g.LogName = config.LogName + g.LogLevel = config.LogLevel + g.MaxSize = config.MaxSize + g.MaxBackups = config.MaxBackups + g.MaxAge = config.MaxAge + g.Compress = config.Compress + g.JsonFormat = config.JsonFormat + g.ShowLine = config.ShowLine + g.LogInConsole = config.LogInConsole // 设置日志级别 var level zapcore.Level - switch app.LogLevel { + switch g.LogLevel { case "debug": level = zap.DebugLevel case "info": @@ -55,17 +70,17 @@ func (app *App) InitLogger() { // 定义日志切割配置 hook := lumberjack.Logger{ - Filename: app.LogPath + app.LogName, // 日志文件的位置 - MaxSize: app.MaxSize, // 在进行切割之前,日志文件的最大大小(以MB为单位) - MaxBackups: app.MaxBackups, // 保留旧文件的最大个数 - Compress: app.Compress, // 是否压缩 disabled by default + Filename: g.LogPath + g.LogName, // 日志文件的位置 + MaxSize: g.MaxSize, // 在进行切割之前,日志文件的最大大小(以MB为单位) + MaxBackups: g.MaxBackups, // 保留旧文件的最大个数 + Compress: g.Compress, // 是否压缩 disabled by default } - if app.MaxAge > 0 { - hook.MaxAge = app.MaxAge // days + if g.MaxAge > 0 { + hook.MaxAge = g.MaxAge // days } // 判断是否控制台输出日志 - if app.LogInConsole { + if g.LogInConsole { syncer = zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(&hook)) } else { syncer = zapcore.AddSync(&hook) @@ -89,7 +104,7 @@ func (app *App) InitLogger() { var encoder zapcore.Encoder // 判断是否json格式输出 - if app.JsonFormat { + if g.JsonFormat { encoder = zapcore.NewJSONEncoder(encoderConfig) } else { encoder = zapcore.NewConsoleEncoder(encoderConfig) @@ -101,10 +116,12 @@ func (app *App) InitLogger() { level, ) - app.Logger = zap.New(core) + g.Logger = zap.New(core) // 判断是否显示代码行号 - if app.ShowLine { - app.Logger = app.Logger.WithOptions(zap.AddCaller()) + if g.ShowLine { + g.Logger = g.Logger.WithOptions(zap.AddCaller()) } + + return g }