原本的 nginx 是不支援把 access log 寫到 pipe 的,對於應用 cronolog 來 rotate log 或是 scribe 來收集 log 之類的用途比較不方便。nginx 作者也說了不會增加這個功能。剛好中國大陸的淘寶將他們所使用並且修改過的 nginx 版本(稱作 Tengine)open source,於是整理了一下,只取出跟 pipe 有關的程式,patch 回原本的 nginx (1.0 stable branch) 上。

Patch 可以在 Github 下載。也可以直接把 這個 Branch clone 下來編譯。

使用方法大致如下:

access_log "pipe:/usr/local/bin/cronolog /data/logs/access-%Y-%m-%d.log" combined

如果 pipe 另一端死掉的話,log 會寫入預設的 log file,不會像 Apache 一樣重新開啟新的 pipe。如果使用比較不穩定的 logger,建議另外多設定一個 access_log 到檔案避免 log 遺失。

arrow
arrow
    全站熱搜

    PIXNET Lab 發表在 痞客邦 留言(1) 人氣()