Apache log 分割处理用的 mod_log_rotate

Apache log 分割处理用的 mod_log_rotate

在windows 下的apache,因为使用 cronolog 作 Apache log 的分割處理,它是使用外部的

工具去分割,然后系统进程里面会有很多的cronolog.exe 而且他们不会停止。这是一个BUG

。所以我们

用mod_log_rotate.so模块来代替

到http://www.apachelounge.com/download/ 下载模块

也许你的主机还需要下载按vcredist_x86.exe

按照下载过来的包里面的readme说明去www.microsoft.com/downloads/details.aspx?

familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en下载

vcredist_x86.exe并安装,如果没有安装这个,下面的httpd.exe.manifest它将没法编译。

并将httpd.exe.manifest拷贝到你apache的bin目录下。

但是在有些windows xp下面可以不用拷贝这个文件apache照样能起来,但是win2003却不行。

一定要安装vcredist_x86.exe 才能不然会报 load这个模块错误
用法很简单:

将 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 

注意,这个模块不能自己创建文件,

如果你的logs文件里面没有test11这个文件,那么写如下配置apache将会报错。且启动失败

CustomLog logs/test11/access_%Y%m%d.log combined

只能用自己手动增加这样一个test11目录才能启动且写入日志。

 

日志轮询二:

利用apache自带的rotatelogs工具,具体设置就是把httpd.conf中的:CustomLog logs/access.log common替换为CustomLog "|bin/rotatelogs.exe -l logs/access%Y-%m-%d.log 86400" combined,

同样 如果你觉得error日志不断增大而不利于访问的时候,也可以使用下面的配置进行error日志的轮询
ErrorLog "|bin/rotatelogs.exe -l /logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"

posted @ 2010-10-15 19:23  luoine  阅读(2267)  评论(2编辑  收藏  举报