package logger import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" ) // NewRetentionLogger 创建仅供 Worker 日留存使用的独立轮转日志。 func NewRetentionLogger(level string, config LogRotationConfig) (*zap.Logger, func() error) { encoder := zapcore.NewJSONEncoder(zapcore.EncoderConfig{ TimeKey: "time", LevelKey: "level", MessageKey: "msg", CallerKey: "caller", EncodeTime: zapcore.ISO8601TimeEncoder, EncodeLevel: zapcore.CapitalLevelEncoder, EncodeCaller: zapcore.ShortCallerEncoder, }) logger := zap.New(zapcore.NewCore(encoder, zapcore.AddSync(newLumberjackLogger(config)), parseLevel(level)), zap.AddCaller()) return logger, logger.Sync }