package initialization import ( "github.com/natefinch/lumberjack" "go.uber.org/zap" "go.uber.org/zap/zapcore" "os" "testData/global" "time" ) func InitLogger() { writeSyncer := getLogWriter() encoder := getEncoder() core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel) // 显示日志发生的代码行号 //logger := zap.New(core, zap.AddCaller()) // 不显示日志发生的代码行号 logger := zap.New(core) global.Log = logger.Sugar() } func getEncoder() zapcore.Encoder { encoderConfig := zap.NewProductionEncoderConfig() encoderConfig.EncodeTime = func(t time.Time, encoder zapcore.PrimitiveArrayEncoder) { encoder.AppendString(t.Format("2006-01-02 15:04:05")) } encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder return zapcore.NewConsoleEncoder(encoderConfig) } func getLogWriter() zapcore.WriteSyncer { lumberJackLogger := &lumberjack.Logger{ Filename: "./log/message.log", // 日志文件路径 MaxSize: 1, // 每个日志文件保存最大尺寸,单位 M MaxBackups: 15, // 日志最多保存多少个备份 MaxAge: 30, // 文件最多保存多少天 Compress: false, // 是否压缩 LocalTime: true, // 是否使用本地时间 } defer lumberJackLogger.Close() // 日志输出至console和文件 return zapcore.NewMultiWriteSyncer( zapcore.AddSync(lumberJackLogger), zapcore.AddSync(os.Stdout), ) // 日志只输出到文件 //return zapcore.AddSync(lumberJackLogger) }