34 lines
1.0 KiB
Go
34 lines
1.0 KiB
Go
package util
|
||
|
||
import (
|
||
"github.com/natefinch/lumberjack"
|
||
"go.uber.org/zap"
|
||
"go.uber.org/zap/zapcore"
|
||
)
|
||
|
||
func NewLogger() *zap.SugaredLogger {
|
||
writeSyncer := getLogWriter()
|
||
encoder := getEncoder()
|
||
core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)
|
||
logger := zap.New(core, zap.AddCaller())
|
||
return logger.Sugar()
|
||
}
|
||
|
||
func getEncoder() zapcore.Encoder {
|
||
encoderConfig := zap.NewProductionEncoderConfig()
|
||
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||
return zapcore.NewConsoleEncoder(encoderConfig)
|
||
}
|
||
|
||
func getLogWriter() zapcore.WriteSyncer {
|
||
lumberJackLogger := &lumberjack.Logger{
|
||
Filename: "./log/run.log", // 日志文件的位置
|
||
MaxSize: 10, // 在进行切割之前,日志文件的最大大小(以MB为单位)
|
||
MaxBackups: 100, // 保留旧文件的最大个数
|
||
MaxAge: 365, // 保留旧文件的最大天数
|
||
Compress: false, // 是否压缩/归档旧文件
|
||
}
|
||
return zapcore.AddSync(lumberJackLogger)
|
||
}
|