apache日志文件太大怎么做日志轮循?

发布时间:2020-11-09编辑:脚本学堂
有关apache日志文件太大,如何进行日志文件切割的方法,分为linux与windows下两种情况,需要的朋友参考下。

nginx日志文件太大的处理方法

无外乎就是定时进行nginx日志切割了,分割成容量较小的文件,然后在任务计划程序中定期清理掉旧文件,就不用提高日志文件增长过快了。

一,linux下配置方法
apache的配置文件httpd.conf中找到
 

ErrorLog  logs/error_log
CustomLog logs/access_log common

修改为:
 

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下配置方法:

在apache的配置文件httpd.conf中找到
 

ErrorLog  logs/error_log
CustomLog logs/access_log common

修改为:
 

ErrorLog  "|c:/apache/bin/rotatelogs.exe c:/apache/logs/error_%Y_%m_%d.log 86400  480"
CustomLog "|c:/apache/bin/rotatelogs.exe  c:/apache/logs/access_%Y_%m_%d.log 86400 480"  common
 

其中c:/apache/是安装apache的路径

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

下列日志文件格式字串可以为所有的strftime(3)实现所支持,见各种扩展库对应的strftime(3)的手册。
 

%A 星期名全称(本地的)
%a 3个字符的星期名(本地的)
%B 月份名的全称(本地的)
%b 3个字符的月份名(本地的)
%c 日期和时间(本地的)
%d 2位数的一个月中的日期数
%H 2位数的小时数(24小时制)
%I 2位数的小时数(12小时制)
%j 3位数的一年中的日期数
%M 2位数的分钟数
%m 2位数的月份数
%p am/pm 12小时制的上下午(本地的)
%S 2位数的秒数
%U 2位数的一年中的星期数(星期天为一周的第一天)
%W 2位数的一年中的星期数(星期一为一周的第一天)
%w 1位数的星期几(星期天为一周的第一天)
%X 时间 (本地的)
%x 日期 (本地的)
%Y 4位数的年份