如何将Apache日志文件按时间分隔存储

来源:互联网 发布:得力美工刀片 编辑:程序博客网 时间:2024/06/16 08:21

如何将Apache日志文件按时间分隔存储


apahce的日志文件一般默认为单一文件。如果日志信息太多,编辑器就无法正常打开了,也不能很好的查看。


我们可以将日志文件按照天去划分,每天保存一个新文件。当然如果需要间隔更短或更长,比如按每小时存储也是没有问题的,具体就看每个人的需求了。


首先需要用到apache中的mod_log_config模块,具体可以查看apache官网的介绍,如下:


http://httpd.apache.org/docs/current/mod/mod_log_config.html



httpd.conf配置修改


Linux

ErrorLog "| /usr/bin/rotatelogs /var/log/example/error_%Y_%m_%d_log 86400 480"


CustomLog "| /usr/bin/rotatelogs /var/log/example/access_%Y_%m_%d_log 86400 480" common



Windows


ErrorLog "|C:/apache/bin/rotatelogs.exe c:/apache/logs/error_%Y_%m_%d.log 86400 480"


CustomLog "|C:/apache/bin/rotatelogs.exe c:/apache/logs/access_%Y_%m_%d.log 86400 480" common



关于rotatelogs的写法说明

rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]

选项

logfile
日志文件名,如果logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位 的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。

[ rotationtime [ offset ]]

(即以时间间隔进行分隔)


rotationtime
日志文件回卷的以秒为单位的间隔时间

offset
相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。国内一般就用480,+8时区。


[ filesizeM ]

(即以文件大小进行分隔)


filesizeM

指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。

下列日志文件格式字串可以为所有的strftime(3)实现所支持,见各种扩展库对应的strftime(3)的手册。
%A 星期名全称
%a 3个字符的星期名
%B 月份名的全称
%b 3个字符的月份名
%c 日期和时间
%d 2位数的一个月中的日期数
%H 2位数的小时数(24小时制)
%I 2位数的小时数(12小时制)
%j 3位数的一年中的日期数
%M 2位数的分钟数
%m 2位数的月份数
%p am/pm 12小时制的上下午
%S 2位数的秒数
%U 2位数的一年中的星期数(星期天为一周的第一天)
%W 2位数的一年中的星期数(星期一为一周的第一天)
%w 1位数的星期几(星期天为一周的第一天)
%X 时间
%x 日期
%Y 4位数的年份

阅读全文
0 0