apache的rotatelogs使用手记

来源:互联网 发布:四环网络 编辑:程序博客网 时间:2024/05/18 03:57
apache的rotatelogs使用手记

作用:按时间,按大小,分隔apache的日志
rotatelogs 是 Apache 2.2 中自带的管道日志程序


语法
rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]


选项
-l
使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。
logfile
它加上基准名就是日志文件名。如果logfile中包含”%”,则它会被视为用于strftime()的格式字符串;否则它会被自动加上以秒为单位的”.nnnnnnnnnn”后缀。这两种格式都表示新的日志开始使用的时间。
rotationtime
日志文件滚动的以秒为单位的间隔时间。
offset
相对于UTC的时差的分钟数。如果省略,则假定为”0″并使用UTC时间。比如,要指定UTC时差为”-5小时”的地区的当地时间,则此参数应为”-300″。
filesizeM
指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。


  CustomLog “|bin/rotatelogs /var/logs/logfile 86400″ common


  我需要两个小时生成一个apache日志,并以时间命名,于是依样画葫芦修改httpd.conf


  CustomLog “|bin/rotatelogs /var/logs/%Y%m%d%H.logfile 7200″ common


  重启apache失败,说明葫芦不能照着画:


  CustomLog “|/usr/local/httpd/bin/rotatelogs /var/logs/%Y%m%d%H.logfile 7200″ common


  修改后apache成功启动,不过生成的日志文件名(以小时命名)有些问题,和服务器时间相差8小时,仔细查看手册,原来是rotatelogs的使用有些机关(有个offset参数,单位是分钟)


  CustomLog “|/usr/local/httpd/bin/rotatelogs /var/logs/%Y%m%d%H.logfile 7200 480″ common


  重启后收工


  附rotatelogs说明


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


  选项


  logfile


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


  rotationtime


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


  offset


  相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300。


  filesizeM


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


ubuntu 
CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/access_%Y%m%d.log 86400" common


error 跟这差不多。

---------------------------

Linux系统配置方法:

将其改为 
ErrorLog "| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_error_log 86400 480"
CustomLog "| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_access_log 86400 480" common

Windows系统下配置方法:

#ErrorLog "|bin/rotatelogs.exe logs/vicp_net_error-%y%m%d.log 86400 480"
#CustomLog "|bin/rotatelogs.exe logs/vicp_net_access-%y%m%d.log 86400 480" common

第一次不知道设置480这个参数,导致日志记录时间和服务器时间相差8小时,原来是rotatelogs有一个offset参数,表示相对于UTC的时差分钟数,中国是第八时区,相差480分钟。86400是表示1天。

补充主要是关于 480 差8小时的这点。
原创粉丝点击