Nginx

nginx 可以以 ISO 8601 格式記錄時間,但包括毫秒嗎?

  • May 21, 2021

我們將 Nginx 作為 Tomcat 前面的反向代理。它們都使用 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 以添加它。

有趣的是,幾年前提出了一個更新檔,它可以提供足夠的靈活性以使其成為可能,但我認為它沒有任何作用:http: //nginx.2469901.n2.nabble.com/PATCH-time-custom-supports- a-custom-log-timestamp-td3505292.html#none

引用自:https://serverfault.com/questions/732395