in pkg/log/zap_logger.go [49:108]
func toZapConfig(c Config) zapcore.Core {
// level config
l, ok := zapLevelMap[strings.ToUpper(c.LoggerLevel)]
if !ok {
l = zap.DebugLevel
}
var levelEnabler zap.LevelEnablerFunc = func(level zapcore.Level) bool {
return level >= l
}
// log format
format := zapcore.EncoderConfig{
MessageKey: "message",
LevelKey: "level",
TimeKey: "time",
NameKey: "logger",
CallerKey: "caller",
StacktraceKey: "stack",
LineEnding: zapcore.DefaultLineEnding,
EncodeLevel: zapcore.CapitalLevelEncoder,
EncodeTime: zapcore.ISO8601TimeEncoder,
EncodeDuration: zapcore.StringDurationEncoder,
EncodeCaller: zapcore.ShortCallerEncoder,
EncodeName: zapcore.FullNameEncoder,
}
if c.NoCaller {
format.CallerKey = ""
}
if c.NoLevel {
format.LevelKey = ""
levelEnabler = func(_ zapcore.Level) bool { return true }
}
if c.NoTime {
format.TimeKey = ""
}
var enc zapcore.Encoder
if c.LogFormatText {
enc = zapcore.NewConsoleEncoder(format)
} else {
enc = zapcore.NewJSONEncoder(format)
}
// log rotate
var syncer zapcore.WriteSyncer
if len(c.LoggerFile) > 0 {
syncer = zapcore.AddSync(&lumberjack.Logger{
Filename: c.LoggerFile,
MaxSize: c.LogRotateSize,
MaxBackups: c.LogBackupCount,
MaxAge: c.LogBackupAge,
LocalTime: true,
Compress: true,
})
} else {
syncer = StdoutSyncer
}
//zap.NewDevelopment()
return zapcore.NewCore(enc, syncer, levelEnabler)
}