Zap Logger 和 Controller-Runtime 是否可以修改運行時日誌等級?
在controller-runtime 中,記錄器基於 Zap 記錄器圖書館。若要在執行時修改日誌等級:
建立新的AtomicLevel 記錄器:
不要使用zap.New(),而是建立一個AtomicLevel 記錄器:
atom := zap.NewAtomicLevel()
自訂編碼器配置:
對於確定性日誌輸出,自訂編碼器配置:
encoderCfg := zap.NewProductionEncoderConfig() encoderCfg.TimeKey = ""
建立記錄器:
結合AtomicLevel 和EncoderConfig建立一個新的logger:
logger := zap.New(zapcore.NewCore( zapcore.NewJSONEncoder(encoderCfg), zapcore.Lock(os.Stdout), atom, ))
日誌等級調整:
運行時,可以使用SetLevel() 方法修改日誌等級:
atom.SetLevel(zap.ErrorLevel)
整合控制器運行時:
要將自訂記錄器與控制器運行時一起使用,請使用sigs.k8s.io/controller-runtime/pkg/log/ zap 中的zap 記錄器進行設定:
ctrl.SetLogger(zap.New(zap.UseAtomicLevel(&atom)))
透過利用AtomicLevel方法,您可以動態更改控制器運行時使用的 Zap 記錄器的日誌級別,從而允許您在運行時調整日誌記錄行為,而不重新建立記錄器或影響其其他選項。
以上是Zap Logger 的日誌等級可以在控制器執行時動態調整嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!