今天是 2006 最後一天,新年快樂!
以前提過使用 cronolog 作 Apache log 的分割處理,它是使用外部的程式去分割,但是今天在測試 Apache 2.2.3 的時候發現問題,可能是 Apache 的 bug,Apache 會發動愈來愈多的 cronolog.exe … 而且停 Apache 並不會停這些 process,這裡有討論.
在網上研究了一下,有人提供了 Apache 模組去達成同樣的功能 — mod_log_rotate,可以供 Apache 1.3 及 2.x 使用,它提供 c 的原始程式,另有網站提供了 Apache 2.0 及 2.2 在 Windows 平台編譯好的 module.
用法很簡單:
- 將 mod_log_rotate.so 放到 Apache 的 module 目錄,如 Apache2\modules.
- 在 httpd.conf 中加上
LoadModule log_rotate_module modules/mod_log_rotate.so
RotateLogs On (打開 log)
RotateLogsLocalTime On (用 local time 算,default 是用 UTC 時間)
RotateInterval 86400 (86400 是 default,也就是一天,這一行不加也可以) - 原本用 cronolog 的地方
CustomLog “|c:/bin/cronolog.exe logs/access_%Y%m%d.log” combined
改成
CustomLog logs/access_%Y%m%d.log combined
Ok !
(Visited 7,811 times, 1 visits today)
Pingback: [2006/12/27 - 2007/01/01] « Kirin Lin
您好, 我使用 Apache 2.2.6, 然後用的是這個 http://www.apachelounge.com/download/mods/mod_log_rotate-1.00a-w32.zip. 結果一執行就跑出這樣的訊息, 請問我用的版本和你的一樣嗎?
apache.exe: Syntax error on line 142 of D:/apache/conf/httpd.conf: Cannot load D:/apache/modules/mod_log_rotate.so into server: \xb5L\xaak\xb1\xd2\xb0\xca\xb3o\xad\xd3\xc0\xb3\xa5\xce\xb5{\xa6\xa1\xa1A\xa6]\xac\xb0\xc0\xb3\xa5\xce\xb5{\xa6\xa1\xaa\xba\xb3]\xa9w\xa4\xa3\xa5\xbf\xbdT\xa1C\xad\xab\xb7s\xa6w\xb8\xcb\xc0\xb3\xa5\xce\xb5{\xa6\xa1\xc0\xb3\xb8\xd3\xa5i\xa5H\xad\xd7\xb4_\xb3o\xad\xd3\xb0\xdd\xc3D\xa1C
應該是一樣的,mod_log_rotate.so file size 10240, date 8/1/2006.
你有裝 Visual C++ 2005 Redistributable Package? README 有說明.
沒有耶, 不過我裝好了, 然後因為我用的是官方版的 apache.exe, 所以也把 httpd.exe.manifest 放到 bin. 不過結果還是失敗, 訊息如下
(Sys) 無法啟動這個應用程式,因為應用程式的設定不正確。重新安裝應用程式應該
可以修復這個問題。
我 httpd.conf 就加上這一段
LoadModule log_rotate_module modules/mod_log_rotate.so
RotateLogs On
RotateLogsLocalTime On
RotateInterval 86400
會不會是得換成 Apachelounge 的才可以呢?
也許吧? 我是用 Apachelounge 的.
我也遇到Syntax error!
在我自己的本本上(windowsXP)上安装apache2.2.8+mod_log_rotate.so,运行正常。但是我拿到服务器(windows2003 Server)上去,就无法启动apache,并报Syntax error,不知道该怎么继续了!
我到Apachelounge/download只有Apache 2.2的
哪裡有Apache2.0的呢?
或是可以共用,我裝上後服務啟動不了了
Apache 2.0跑不起來嗎? 它說了:The mods below are build with Visual Studio C++ 2005(VC8) or 2008(VC9) against the Apache 2.2 headers and loads when Apache is build with Visual Studio C++ 2005, 2008 or the download from ASF http://httpd.apache.org. It will NOT load into Apache 2.0.x releases.
你可以自己compile 2.0 mod_log_rotate(不容易)或升級成 Apache 2.2。以前有 for 2.0 的版本,現在沒了。