30 lines
812 B
Go
30 lines
812 B
Go
package internal
|
|
|
|
import (
|
|
"ai4m/global"
|
|
"go.uber.org/zap/zapcore"
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
|
"os"
|
|
"path"
|
|
)
|
|
|
|
type lumberjackLogs struct{}
|
|
|
|
var LumberjackLogs = new(lumberjackLogs)
|
|
|
|
// GetWriteSyncer 获取 zapcore.WriteSyncer
|
|
func (l *lumberjackLogs) GetWriteSyncer(level string) zapcore.WriteSyncer {
|
|
fileWriter := &lumberjack.Logger{
|
|
Filename: path.Join(global.PCM_CONFIG.Zap.Director, level+".log"),
|
|
MaxSize: global.PCM_CONFIG.RotateLogs.MaxSize,
|
|
MaxBackups: global.PCM_CONFIG.RotateLogs.MaxBackups,
|
|
MaxAge: global.PCM_CONFIG.RotateLogs.MaxAge,
|
|
Compress: global.PCM_CONFIG.RotateLogs.Compress,
|
|
}
|
|
|
|
if global.PCM_CONFIG.Zap.LogInConsole {
|
|
return zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(fileWriter))
|
|
}
|
|
return zapcore.AddSync(fileWriter)
|
|
}
|