第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將自定義(非常量)字符串信息添加到日志格式?

如何將自定義(非常量)字符串信息添加到日志格式?

Go
蕪湖不蕪 2022-01-04 10:26:18
我已經(jīng)開始使用 Go 登錄,我遇到了這篇關(guān)于登錄 Go 的文章https://www.goinggo.net/2013/11/using-log-package-in-go.html使用以下源代碼(略有更改):var (  Trace   *log.Logger  Info    *log.Logger  Warning *log.Logger  Error   *log.Logger)func Init(    traceHandle io.Writer,    infoHandle io.Writer,    warningHandle io.Writer,    errorHandle io.Writer) {    Trace = log.New(traceHandle,        “TRACE: “,        log.Ldate|log.Ltime|log.Lshortfile)    Info = log.New(infoHandle,        “INFO: “,        log.Ldate|log.Ltime|log.Lshortfile)    Warning = log.New(warningHandle,        “WARNING: “,        log.Ldate|log.Ltime|log.Lshortfile)    Error = log.New(errorHandle,        “ERROR: “,        log.Ldate|log.Ltime|log.Lshortfile)}func main() {  Init(ioutil.Discard, os.Stdout, os.Stdout, os.Stderr)}現(xiàn)在我想向此記錄器生成的日志條目添加一些自定義信息,但它們不是常量字符串文字(如添加到那里INFO:或WARNING:)例如,我想添加觸發(fā)日志的函數(shù)的名稱。假設我有以下功能,我想為此使用:(來自此處)func _enter() {  // Skip this function, and fetch the PC and file for its parent  pc, _, _, _ := runtime.Caller(1)  // Retrieve a Function object this functions parent  functionObject := runtime.FuncForPC(pc)  // Regex to extract just the function name (and not the module path)  extractFnName := regexp.MustCompile(`^.*\.(.*)$`)  fnName := extractFnName.ReplaceAllString(functionObject.Name(), "$1")  fmt.Printf("Entering %s\n", fnName)}如何將其添加到記錄器?
查看完整描述

1 回答

?
瀟湘沐

TA貢獻1816條經(jīng)驗 獲得超6個贊

  • 最簡單的答案當然是在編寫日志記錄行時輸入它。許多圖書館實際上使用這樣的約定

    logger.Logf("myfilename.go:123" + "other logging info")

    其中 123 是行號。這也可以由 ide 或編輯器編寫腳本。

  • 如果您更改_enter()為返回函數(shù)的名稱,則其余部分將變得更加簡單。您可以logger.SetPrefix()在每個函數(shù)內(nèi)部調(diào)用,根據(jù)您的示例代碼,它們可能如下所示。

    Info.SetPrefix("INFO: " + _enter() + ":")

    您可以將記錄器包裝在一個有助于自動執(zhí)行上述操作的結(jié)構(gòu)中,但您應該注意_enter() 每次調(diào)用的開銷。

  • 盡管此時,您可能想考慮使用具有更多功能的日志庫。我對logrus有很好的經(jīng)驗,它可以替代標準庫的日志包。


查看完整回答
反對 回復 2022-01-04
  • 1 回答
  • 0 關(guān)注
  • 238 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號