用rotatelogs设置服务器网站访问日志按天记录, 每天一个文件

2014年07月09日 01:37 by:老修--走失的镜头盖

导读: 默认linux 服务器日志是一个文件, 时间久了就会很大,用rotatelogs设置服务器网站访问日志按天记录, 每天一个文件, 这样既方便查看也减轻服务器读取大文件的耗时.

默认情况下linux 服务器日志只是一个文件, 时间久了就会变的很大, 我们操作起来非常麻烦

可以用rotatelogs来设置服务器的网站访问日志按天记录, 每天生成一个单独的文件, 这样既方便查看也减轻服务器读取大文件的耗时

以centos为例, 首先得安装rotatelogs, 运行命令:

  1. yum install rotatelogs

修改配置文件按天记录网站的访问日志

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

  1. #ErrorLog logs/error_log #注释掉这行,加上下面这行
  2. ErrorLog "|rotatelogs /home/lao8.org/log/error_log%Y_%m_%d.log 86400 480"  #设置好日志保存目录每天生成错误日志
  3. #CustomLog logs/access_log common #注释加上下面这样
  4. CustomLog "|rotatelogs  /home/lao8.org/log//access_log%Y_%m_%d.log 86400 480" combined #每天生成访问日志

保存并重启apache (运行命令 service httpd restart), 打开日志目录就能看到生成的日志文件是以日期设置的.

LInux apache服务器网站访问日志按天生成

备注: Rotatelogs的用法:

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

选项:

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