package utils import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "gopkg.in/natefinch/lumberjack.v2" ) type Logger struct { *zap.SugaredLogger } func NewLogger() *Logger { // 配置日志轮转 lumberJackLogger := &lumberjack.Logger{ Filename: "logs/equipment-analyzer.log", MaxSize: 100, // MB MaxBackups: 3, MaxAge: 28, // days Compress: true, } // 配置编码器 encoderConfig := zap.NewProductionEncoderConfig() encoderConfig.TimeKey = "timestamp" encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder // 创建核心 core := zapcore.NewCore( zapcore.NewJSONEncoder(encoderConfig), zapcore.AddSync(lumberJackLogger), zap.NewAtomicLevelAt(zap.InfoLevel), ) // 创建logger logger := zap.New(core, zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel)) sugar := logger.Sugar() return &Logger{sugar} }