Kitex 日志

2022-04-26 15:44 更新

pkg/klog

Kitex 在 pkg/klog 里定義了 ?Logger?、?CtxLogger?、?FormatLogger ?等幾個接口,并提供了一個 ?FormatLogger ?的默認實現(xiàn),可以通過 ?klog.DefaultLogger()? 獲取到其實例。

pkg/klog 同時也提供了若干全局函數(shù),例如 ?klog.Info?、?klog.Errorf? 等,用于調(diào)用默認 logger 的相應方法。

注意,由于默認 logger 底層使用標準庫的 ?log.Logger? 實現(xiàn),其在日志里輸出的調(diào)用位置依賴于設置的調(diào)用深度(call depth),因此封裝 klog 提供的實現(xiàn)可能會導致日志內(nèi)容里文件名和行數(shù)不準確。

注入自己的 logger 實現(xiàn)

可以用 ?klog.SetLogger? 來替換掉默認的 logger 實現(xiàn)。

重定向默認 logger 的輸出

可以使用 ?klog.SetOutput? 來重定向 klog 提供的默認 logger 的輸出。

例如,要把默認 logger 的輸出重定向到啟動路徑下的 ./output.log,可以這樣實現(xiàn):

package main
import (
    "os"
    "github.com/cloudwego/kitex/pkg/klog"
)
func main() {
    f, err := os.OpenFile("./output.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
    if err != nil {
    	panic(err)
    }
    defer f.Close()
    klog.SetOutput(f)
    ... // continue to set up your server
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號