web-dev-qa-db-ja.com

nginxは時間をISO 8601形式で記録できますが、ミリ秒も含まれますか?

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にログにミリ秒を含める方法はありますか?

5
SamBarham

残念ながら、nginxへのソースコードの読み取りに基づいて、これを行う簡単な方法はないようです。ログを後処理する($ msecの出力を取得して、自分でmsを使用してISO8601に変換することができます)か、nginxにパッチを適用してこれを追加する必要があります。

興味深いことに、パッチを数年前に提案して、それを可能にするのに十分な柔軟性を与えたでしょうが、どこにも行かなかったと思います: /PATCH-time-custom-supports-a-custom-log-timestamp-td3505292.html#none

4
Ed Rowe