本文的目的就是处理apache生成的日志自动截断重生,也就是说可以按照固定的时间固定的大小生成新的文件,用到的就是Apache自带的rotatelogs程序,rotatelogs是一个配合Apache管道日志功能使用的简单程序。设置方法如下:

编辑Apache的主配置文件,更改内容如下:

注释掉如下两行

ErrorLog logs/error_log

CustomLog logs/access_log common

然后添加如下两行
ErrorLog "|bin/rotatelogs logs/errorlog.%Y-%m-%d-%H_%M_%S 2M +480"

CustomLog "|bin/rotatelogs logs/accesslog.%Y-%m-%d-%H_%M_%S 2M +480" common

意义如下:

errorlog.%Y-%m-%d-%H_%M_%S为生成日志的格式,类似于这样:errorlog.2010-04-15-11_32_30 ,以年月日时分秒为单位的,其他支持的日志格式参数如下:

rotatelogs实现Apache的日志轮转_轮转

2M 为日志的大小,即为日志达到多大后生成新的日志文件,支持的单位为K,M,G,本处为2M

+480 为时差,文件的时间为美国时间,中国的时差要比美国多8个小时也就是480分钟,所以要加上480分钟

还有其他的设置方法如下:

每天生成一个错误日志文件

ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400"

其中86400为轮转的时间单位为秒