一、安装cronolog
复制代码代码如下:
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
# tar zxvf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure
# make && make install
查看cronolog安装后所在目录(验证安装是否成功)
# which cronolog
一般情况下显示为:/usr/local/sbin/cronolog
二、配置
apache下httpd.conf修改如下配置
复制代码代码如下:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" apache_front_log
LogFormat "%{Host}i %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" nginx_front_log
# CustomLog "logs/access_log" common
CustomLog "|/usr/admin/cronolog/sbin/cronolog /home/admin/apache/logs/access_%Y%m%d.log" common
# ErrorLog "logs/error_log"
ErrorLog "|/usr/admin/cronolog/sbin/cronolog /home/admin/apache/logs/error_%Y%m%d.log"
三、说明
rotatelogs 是 Apache 2.2 中自带的管道日志程序,参数如下(参见:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/rotatelogs.html)
语法
rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]
选项
-l
使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。
logfile
它加上基准名就是日志文件名。如果logfile中包含”%”,则它会被视为用于strftime()的格式字符串;否则它会被自动加上以秒为单位的”.nnnnnnnnnn”后缀。这两种格式都表示新的日志开始使用的时间。
rotationtime
日志文件滚动的以秒为单位的间隔时间。
offset
相对于UTC的时差的分钟数。如果省略,则假定为”0″并使用UTC时间。比如,要指定UTC时差为”-5小时”的地区的当地时间,则此参数应为”-300″。
filesizeM
指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。
ErrorLog "|/usr/admin/cronolog/sbin/cronolog /home/admin/apache/logs/error_%Y%m%d.log"
ErrorLog "|/usr/admin/cronolog/sbin/rotatelogs /home/admin/apache/logs/error_%Y%m%d.log"
这两个管道日志文件程序还有一点不同之处是使用 cronolog 时如果日志是放在某个不存在的路径则会自动创建目录,而使用 rotatelogs 时不能自动创建,要特别注意。
(责任编辑:IT) |