+func newLogFileCore(path string, level zapcore.Level) zapcore.Core {
+ encoderCfg := zap.NewProductionEncoderConfig()
+ encoderCfg.TimeKey = "timestamp"
+ encoderCfg.EncodeTime = zapcore.ISO8601TimeEncoder
+ writer := zapcore.AddSync(&lumberjack.Logger{
+ Filename: path,
+ MaxSize: 100, // MB
+ MaxBackups: 3,
+ MaxAge: 365, // days
+ })
+
+ return zapcore.NewCore(
+ zapcore.NewConsoleEncoder(encoderCfg),
+ writer,
+ level,
+ )
+}
+