`
ikon
  • 浏览: 103249 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apache 日志按天记录

 
阅读更多

在apache的配置文件中找到
ErrorLog logs/error_log
CustomLog logs/access_log common

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天。

附rotatelogs说明

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

选项
logfile
它加上基准名就是日志文件名。如果logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。
rotationtime
日志文件回卷的以秒为单位的间隔时间
offset
相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300。
filesizeM
指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。

 

 

假如你的apache的安装目录为/usr/local/apache_test/它的日志文件在/usr/local/apache_test/logs/下面,通常访问日志为access_log,那么如何来做呢?
         1.在/etc/logrotate.d/目录下创建一个文件rotate_apache,运行命令touch rotate_apache(注:该文件用来告诉logrotate如何来按天轮循生成日志文件)
         2.编辑该文件vi rotate_apache,输入以下内容:
/usr/local/apache_test/logs/access_log{
missingok
daily
rotate 10
postrotate
/bin/kill -HUP `cat /usr/local/apache_test/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
compress
}
3.OK了,就这么简单,之后你就会发现在apache的日志目录下会每天都产生一个文件,文件名如下:
                access_log.1.gz
                access_log.2.gz
                ………………..

         这个工具(logrotate)以一种灵活的方式来对系统中的日志进行统一的管理,工作原理是这样的:它本身被加到了linux系统中的crontab中(但是我们从crontab -l中是看不到的),所以默认就会每天去执行一次,执行的配置文件为/etc/logrotate.conf,它会通过里面定义的内容来执行日志的切换工作,里面有好多可选的配置方式和参数。

 

 

cronolog

在apache的FAQ中,推荐了经过近2年发展已经比较成熟的一个工具cronolog:安装很简单:configure=> make=> make install

他的一个配置的例子会让你了解它有多么适合日志按天轮循:对httpd.conf做一个很小的修改就能实现:
TransferLog "|/usr/sbin/cronolog /var/log/%Y%m%d.log"
ErrorLog "|/usr/sbin/cronolog /var/%Y%m%d-errors.log"

然后:日志将写入
/var/log/20090901.log
/var/log/20090901-errors.log
目录如果不存在的话,将自动创建

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics