2008年8月19日

如何讓 Apache 的 access log能夠自動rotate

根據許多前人的經驗, 發現 Apache 內建的 Rotatelogs.exe 雖然可以做到 rotate , 但是其分割是以啟動httpd的時候起算,也就是說你在8/19 的15:00開始啟動 apache, 你的access.log並不會在8/20就被closed, 而是在 8/20 的15:00, 這樣的話對於系統管理者來說,就喪失了分日期管理的意義 (還要自己去parse內容),所以使用 mod_log_rotate 模組是比較理想的方式, 使用方式如下

前置作業
1.請看目前自己的Apache版本為何, 可用 httpd -v 或 apachectl status來查看
2.下載相對應版本的 mod_log_rotate.so , 可至此網站下載

正式開始
1. 修改 httpd.conf, 用以載入模組:
LoadModule log_rotate_module modules/mod_log_rotate.so
CustomLog /logs/access_%Y%m%d.log common
RotateLogs On
RotateLogsLocalTime On

2. 重啟 apache
使用 service httpd restart 或 apachectl restart 或若使用xampp, wamp 之類可用選單重啟

如此就可以用天為單位,分割 access.log 了

沒有留言: