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 的相應(yīng)方法。

注意,由于默認 logger 底層使用標準庫的 ?log.Logger? 實現(xiàn),其在日志里輸出的調(diào)用位置依賴于設(shè)置的調(diào)用深度(call depth),因此封裝 klog 提供的實現(xiàn)可能會導(dǎo)致日志內(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

公眾號
微信公眾號

編程獅公眾號