Apache Log檔 使用日期格式 當 檔名設定

Apache 預設的 Log 檔是存成: access.log、error.log, 再經過 Log rotation 的話, 會變成如下:

access.log.1
access.log.2.gz
access.log.3.gz
...

如果想要依照日期來產生 log 檔(ex: access-2014-08-01.log), 要如何做呢?

Apache Log檔 使用日期格式 當 檔名設定

於 Apache 可以找到設定的方法, 官方建議可以用 rotatelogs, 但是有另外一個改良版 cronolog 可以用, 再此會兩種範例都寫一寫, 可以混著使用, 再依照自己習慣挑喜歡的用.

註: rotatelogs、cronolog 要混用, 需要 VirtualHost 分開不同 domain 使用, 分開記錄.

Apache 預設寫法

使用 rotatelogs

  • rotatelogs - Piped logging program to rotate Apache logs
  • 設定方式 (二者挑其一)
    • CustomLog "||/usr/local/apache/bin/rotatelogs /var/log/access_log 86400"
    • CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common
    • 我是用: CustomLog "|/usr/bin/rotatelogs /var/log/apache2/cropv-access-%Y-%m-%d.log 86400" combined

使用 cronolog

  • apt-get install cronolog # 需要另外安裝
  • cronolog - write log messages to log files named according to a template
  • cronolog is based on a program called rotatelogs by Ben Laurie, which is packaged with the Apache web server.
  • 設定方式
    • CustomLog "|/usr/bin/cronolog /var/log/apache2/access-%Y-%m-%d.log" combined

註: 上述設定完後, 會造成 Log rotate 那邊都不會自動壓縮、刪除, 需要另外設定, 再此就先不多做說明.

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈Apache Log檔 使用日期格式 當 檔名設定〉中有 1 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料