0
GoLangでMDC Logging(Java)をどのように達成できますか?診断された診断コンテキストでのGolangロギング
同時リクエストをトレースできるようにするには、すべてのサーバーログにUUIDを追加する必要があります。
GoLangでMDC Logging(Java)をどのように達成できますか?診断された診断コンテキストでのGolangロギング
同時リクエストをトレースできるようにするには、すべてのサーバーログにUUIDを追加する必要があります。
Java MDCはスレッドローカルストレージに依存しますが、Goにはないものがあります。
最も近いのは、スタックにContextをスレッドすることです。
これは、Goで何をしているのかがますます増えています。
やや典型的な方法は次のように、Web要求のコンテキストにリクエストIDを追加するミドルウェアパッケージを経由してこれを行うことです:あなたはそれを引く、あなたの周りのコンテキストを渡すと仮定すると、次に
req = req.WithContext(context.WithValue(req.Context(),"requestId",ID))
ctx.Value("requestId")
で取り出して、それが意味を成すどこででも使用してください。
func logStuff(ctx context.Context, msg string) {
log.Println(ctx.Value("requestId"),msg) // call stdlib logger
}
あなたがこれを処理することができます方法の束がありますが、それはかなり単純なフォームです。
これが役立ちます:https://joeshaw.org/revisiting-context-and-http-handler-for-go-17/ –