Rails 4アプリに構造化ログを追加しています。 this articleに記載されているようにlogrageとlogstash-loggerを使用すると、私は物事がほとんど働いています。Rails 4と構造化ロギングでは、リクエストIDフィールドをどのようにログに追加できますか?
ログにリクエストIDを追加できません。私が見つけた最も近いconfig/${ENV}.rb
にこれを追加することです:
config.log_tags = [:uuid]
しかし、これではなく、名前のフィールドとして、それを追加することで、タグリストに要求IDを追加します。
{
"tags": [
"da76b4be-01ae-4cc4-8d3c-87062ea02cfe"
],
"host": "services",
"severity": "DEBUG",
"@version": "1",
"@timestamp": "2016-09-13T17:24:34.883+00:00",
"message": "..."
}
これは問題です。これは、特定のリクエストIDを検索する方法がより扱いにくく、あまり明白ではありません。さらに、logstashでメッセージを解析すると、すでにログメッセージに関連付けられている他のタグが上書きされます。
リクエストIDを名前付きフィールドとしてログに追加する方法はありますか。
{
"request_id", "da76b4be-01ae-4cc4-8d3c-87062ea02cfe",
"host": "services",
"severity": "DEBUG",
"@version": "1",
"@timestamp": "2016-09-13T17:24:34.883+00:00",
"message": "..."
}
私はこれを試しましたが、 'payload'ハッシュにはuuidフィールドがありません。私は '' uuid ':null'をログに記録します。 – leedm777
これを動作させるには、 'ApplicationController'で定義された' append_info_to_payload'が必要であることがわかりました(https://github.com/roidrage/lograge/blob/master/README.mdを参照)。しかし、これはカスタムフィールドをアクセスログに追加するだけです。 UUIDを有効にするには、その要求に関連するすべてのログに(UUIDがすべてのログエントリにタグを置くのと同じ方法で)必要があります。 – leedm777