Tomcatの前にリバースプロキシとしてNginxがあります。どちらもISO 8601タイムスタンプでアクセスを記録しますが、Tomcatはミリ秒単位で追加します(これは標準の一部です)。そのため、Nginxがリクエストを取得してTomcatに渡す場合、Nginxログのタイムスタンプは「2015-10-29T00:37:02 + 00:00」となり、Tomcatのタイムスタンプは「2015-10-29T00:37」になります。 :02,106 + 0000 "同じアクセス。書式設定のわずかな違いについては心配していませんが、ミリ秒(Tomcatログの "、106"の部分)がないと問題が発生し、ログを正しく関連付けることができなくなります。
Nginxにログにミリ秒を含める方法はありますか?
残念ながら、nginxへのソースコードの読み取りに基づいて、これを行う簡単な方法はないようです。ログを後処理する($ msecの出力を取得して、自分でmsを使用してISO8601に変換することができます)か、nginxにパッチを適用してこれを追加する必要があります。
興味深いことに、パッチを数年前に提案して、それを可能にするのに十分な柔軟性を与えたでしょうが、どこにも行かなかったと思います: /PATCH-time-custom-supports-a-custom-log-timestamp-td3505292.html#none