apache的access_log等日志如果长度过大,会显著影响系统的性能,这种现象在日志超过100MB的情况下特别明显。我们可以使用Apache推荐的一个近几年发展已经比较成熟的工具cronolog来对日志文件进行轮循,例如:
TransferLog “|/usr/sbin/cronolog /path/to/apache/logs/%Y/%m/%d/access_log”
在这个示例中,access_log被通过管道方式发送给cronolog,后者将日志按“日”写入对应目录下的access_log。
那么,我们每天定时mv走access_log,并按照特定的规则命名,是否也可以达到同样的效果呢?答案是否定的。因为在unix/linux系统中,一个文件是不依赖于它的文件名存放的,将access_log mv成别的文件名,apache仍然会写入那个文件,而不会另起炉灶,除非重启apache服务。