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

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

在 Go 中以一個結(jié)構(gòu)化日志行跟蹤 HTTP 請求

在 Go 中以一個結(jié)構(gòu)化日志行跟蹤 HTTP 請求

Go
江戶川亂折騰 2022-08-24 16:59:16
我已經(jīng)了解到您可以“裝飾”HTTP傳輸,以便您可以了解請求的詳細信息,但是我無法完全弄清楚如何在同一行中記錄URL。https://play.golang.org/p/g-ypQN9ceGa結(jié)果  INFO[0000] Client request            dns_start_ms=0 first_byte_ms=590 response_code=200 total_ms=590 url=   INFO[0000] 200我一直感到困惑,我是否應該使用 https://golang.org/pkg/context/#WithValue 在結(jié)構(gòu)中傳遞上下文,特別是在 https://blog.golang.org/context-and-structs 以傳遞上下文結(jié)束的情況下。上下文中作為參數(shù)。
查看完整描述

2 回答

?
呼啦一陣風

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

從 net/http 瀏覽 request.go 中如何構(gòu)造請求的行為。您會看到該字段從未設(shè)置在那里。引用同一參考文獻,RequestURI

通常應改用 URL 字段。
在 HTTP 客戶端請求中設(shè)置此字段是錯誤的

因此,我建議您改用。
它是從請求 uri 解析而來的。它應該具有您需要的數(shù)據(jù)。request.URL

您可以按如下方式構(gòu)造輸出:

f := log.Fields{
    "url": fmt.Sprintf("%s %s%s", r.Method, r.URL.Host, r.URL.Path),
}

此外,根據(jù)我的經(jīng)驗,使用上下文要容易得多。WithValue 并將上下文作為參數(shù)傳遞。


查看完整回答
反對 回復 2022-08-24
?
波斯汪

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

在代碼中替換為 以記錄完整、有效的 URL(https://golang.org/pkg/net/url/#URL.String)。 在客戶端為空(https://golang.org/pkg/net/http/#Request),如代碼輸出所示。r.RequestURIr.URL.String()RequestURI

我不明白與你的問題有什么關(guān)系,但我相信 https://blog.golang.org/context-and-structs 被認為是“最佳實踐”。context.Context


查看完整回答
反對 回復 2022-08-24
  • 2 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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