package logger import ( "fmt" "go.uber.org/zap" "go.uber.org/zap/zapcore" "os" "time" ) // 初始化打印到控制台的ZapCore func initConsoleCore() zapcore.Core { // 配置 sugaredLogger writer := zapcore.AddSync(os.Stdout) // 自定义时间输出格式 customTimeEncoder := func(t time.Time, enc zapcore.PrimitiveArrayEncoder) { enc.AppendString(fmt.Sprintf("[%v]", t.Format("2006-01-02 15:04:05.000"))) } // 格式相关的配置 encoderConfig := zap.NewProductionEncoderConfig() // 修改时间戳的格式 encoderConfig.EncodeTime = customTimeEncoder // 日志级别使用大写带颜色显示 encoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder encoder := zapcore.NewConsoleEncoder(encoderConfig) // 设置日志等级,如果是release模式,控制台只打印Error级别以上的日志 logLevel := zapcore.DebugLevel if config.Mode == Prod { logLevel = zapcore.ErrorLevel } // 设置日志级别 core := zapcore.NewCore(encoder, writer, logLevel) return core }