一聚教程网:一个值得你收藏的教程网站

热门教程

限制apache日志文件access.log大小方法详解

时间:2022-06-30 18:13:07 编辑:袖梨 来源:一聚教程网

用到apache自带的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文件大小滚动,而不是按照时间或时差滚动。

例子:
1、按时间滚动日志文件:

 代码如下 复制代码


错误日志:ErrorLog “|/data/apache/bin/rotatelogs 日志存放目录/%Y%m%d_error.log 86400 480″
访问日志:CustomLog “|/data/apache/bin/rotatelogs 日志存放目录/%Y%m%d_access.log 86400 480″ common

其中:

/data/apache:为apache的安装目录,根据自己实际情况确定;
86400:秒,24小时,表示生成的日志文件按天滚动,也就是每天生成一个日志文件;
480:分,时间偏移。
同理可以按小时滚动日志文件,每隔一个小时,几个小时。。。生成一个日志文件。

扩展:可以写个脚本定时删除日志文件,只保留几天的日志,如果网站访问量比较大,一天会生成几十上百M甚至更大的日志文件,既占硬盘又影响服务器性能。

2、按大小滚动日志文件:

 代码如下 复制代码

错误日志:ErrorLog “|/data/apache/bin/rotatelogs -l 日志存放目录/%Y%m%d_error.log 5M”
访问日志:CustomLog “|/data/apache/bin/rotatelogs -l 日志存放目录/%Y%m%d_access.log 5M” common

当日志文件达到5M时,滚动该日志文件。

在 Windows 下的设置例子如下:

 代码如下 复制代码

 
# 限制错误日志文件为 1M

ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M"

# 每天生成一个错误日志文件

#ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400"

# 限制访问日志文件为 1M

CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 1M" common

# 每天生成一个访问日志文件

#CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 86400" common

在 Linux 下的设置例子如下:

 代码如下 复制代码

# 限制错误日志文件为 1M

ErrorLog "|/server/apache/bin/rotatelogs /server/apache/logs/error-%Y-%m-%d.log 1M"

# 每天生成一个错误日志文件

ErrorLog "|/server/apache/bin/rotatelogs /server/apache/logs/error-%Y-%m-%d.log 86400"

# 限制访问日志文件为 1M

CustomLog "|/server/apache/bin/rotatelogs  /server/apache/logs/access-%Y-%m-%d.log 1M" common

# 每天生成一个访问日志文件

CustomLog "|/server/apache/bin/rotatelogs  /server/apache/logs/access-%Y-%m-%d.log 86400" common

热门栏目