golang zap 庫 使用不同顏色

package log

import (
   "fmt"
   "go.uber.org/zap"
   "go.uber.org/zap/zapcore"
)

// error logger
var ZapLog_V1 *zap.Logger



func init() {
   encoderConfig := zapcore.EncoderConfig{
      TimeKey:        "time",
      LevelKey:       "level",
      NameKey:        "logger",
      CallerKey:      "caller",
      MessageKey:     "msg",
      StacktraceKey:  "stacktrace",
      LineEnding:     zapcore.DefaultLineEnding,
      //EncodeLevel:    zapcore.LowercaseLevelEncoder,  // 小寫編碼器
      EncodeLevel:    zapcore.CapitalColorLevelEncoder, //這裏可以指定顏色
      EncodeTime:     zapcore.ISO8601TimeEncoder,     // ISO8601 UTC 時間格式
      EncodeDuration: zapcore.SecondsDurationEncoder,
      EncodeCaller:   zapcore.FullCallerEncoder,      // 全路徑編碼器
   }

   // 設置日誌級別
   atom := zap.NewAtomicLevelAt(zap.InfoLevel)
   config := zap.Config{
      Level:            atom,                                                // 日誌級別
      Development:      true,                                                // 開發模式,堆棧跟蹤
      //Encoding:         "json",                                              // 輸出格式 console 或 json
      Encoding:         "console",                                              // 輸出格式 console 或 json
      EncoderConfig:    encoderConfig,                                       // 編碼器配置
      InitialFields:    map[string]interface{}{"serviceName": "wisdom_park"}, // 初始化字段,如:添加一個服務器名稱
      OutputPaths:      []string{"stdout",},         // 輸出到指定文件 stdout(標準輸出,正常顏色) stderr(錯誤輸出,紅色)
      ErrorOutputPaths: []string{"stderr"},
   }
   config.EncoderConfig.EncodeLevel =zapcore.LowercaseColorLevelEncoder //這裏可以指定顏色
   // 構建日誌
   var err error
   ZapLog_V1, err = config.Build()
   if err != nil {
      panic(fmt.Sprintf("log 初始化失敗: %v", err))
   }


}

 

main.go

func main(){
   log.ZapLog_V1.Warn("log 初始化成功")
 
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章