- log:优化

master
李光春 2 years ago
parent 2f966a7ade
commit 6862737f47

@ -1,6 +1,7 @@
## v2022-05-31
- weChatOpen增加 `WxaBusinessGetUserPhoneNumber` 方法
- log优化
## v2022-05-30

@ -8,8 +8,7 @@ import (
"time"
)
type App struct {
Logger *zap.Logger
type ConfigGoLog struct {
LogPath string // 日志文件路径
LogName string // 日志文件名
LogLevel string // 日志级别 debug/info/warn/errordebug输出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
}

Loading…
Cancel
Save