当前位置: > Linux服务器 > 监控工具 >

linux下的日志切割工具 cronolog

时间:2014-10-26 01:21来源:linux.it.net.cn 作者:it

一、安装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)
------分隔线----------------------------