Apache如何每天生成独立日志文件(access_log和error_log)

2013年01月27日 14:18:05 苏内容
  标签: Apache
阅读:7328

apache运行自动生成access_log(访问日志)和error_log(错误日志)两种日志文件,这对于系统管理员或网站运营人员是非常有用的。

我安装的是centos,使用yum方式安装lamp环境的,日志文件位置:

/var/log/httpd/access_log是Apache服务器的访问日志文件
/var/log/httpd/error_log是Apache服务器的错误日志文件

如果把所有的访问日志都放在access_log,所有的错误日志都放在error_log文件,那么着两个文件肯定会很大,你打开日志的时间都会很长,别说看了,而且影响网站速度。我看了下php点点通,刚转到阿里云才几天,日志文件都有几十兆了,因此限制日志文件大小是很有必要的。

打开apache的配置文件:vi /etc/httpd/conf/httpd.conf

编辑:

#错误日志

#ErrorLog logs/error_log #注释,加上下面这行

ErrorLog "|rotatelogs /var/log/httpd/error_log%Y_%m_%d.log 86400 480"  #每天生成错误日志

#访问日志

#CustomLog logs/access_log common #注释加上下面这样

CustomLog "|rotatelogs /var/log/httpd/access_log%Y_%m_%d.log 86400 480" common #每天生成访问日志

OK,重启apache,你就可以看到新生成的日志文件:

Apache如何每天生成独立日志文件(access_log和error_log)

Rotatelogs的用法如下:


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

选项:

    -l

    使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。

    logfile

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

    rotationtime

    日志文件滚动的以秒为单位的间隔时间。

    offset

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

    filesizeM

    指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。

扩展阅读