私はhttp apiのプロジェクトに取り組んでいます。実装したいことがありますが、私はそれを行う方法を見つけていません。 私のケースでは、トランザクションIDをリクエストで送信します。このトランザクションIDを取得してロガーで使用し、現在のリクエストの各ログエントリにこの情報を追加します。私はいくつかの問題が発生した場合に情報を取得したいときにログのフィルタリングを改善するためにこれを実行したいと思います。Go - リクエストの各メッセージに特定の情報を追加するためにロガーをラップします
例えば私のトランザクションIDはfoo
です: api | [GIN] 2016/08/19 - 13:00:37 | 201 | 30.791855ms | 192.168.99.1:63922 | POST /v1/my/endpoint api | time="2016-08-19T13:00:39Z" level=info msg="Authenticated API user: tests" transactionId="foo" api | time="2016-08-19T13:00:39Z" level=debug msg="SQL query" args=25 query=" SELECT id, created, information1, information2 FROM mydb.mytable WHERE id = ?; " transactionId="foo"
これは私が私のログに持ちたい情報の種類です。
各ログ呼び出しでトランザクションIDを注入する代わりに、ロガーをシングルトンとして使用し、ロガーが呼び出されるたびに情報を追加する方法があるかどうかは疑問でした。
私はこの問題で十分な詳細を提供したいと思います。
ありがとうございました。