日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件
把虚拟主机配置文件改成如下:
打开配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
更改CustomLog配置
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img
1.首先指定一个工具rotatelogs
2.在定义一个日志的名称%Y%m%d
3.规定时间去生成,时间段就为1天,换算成秒,就是86400秒
然后保存退出
rotatelogs工具,它是Apache自带的一个切割工具
-l参数,目的是以当前系统时间为基准。如果不指定 -l ,那么就会指定 UTC时间 的格式去切割日志
在中国应该是 CST,在美国是 UTC ,两者时区不同,相差几个小时
定义日志的名称,因为是切割的,所以根据时间日期让它自动变,就需要加一个变量%Y%m%d
%Y,表示 年 %m,表示 月 %d,表示 日
按规定时间去生成,时间段为1天,换算成秒,就是86400秒
然后查看配置文件语法有无错误,并重新加载配置文件
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl graceful
这时候还需要去做一些访问,因为还没有任何的日志生成,在这个目录下还没有生成一个新的文件
用curl命令访问
curl -x127.0.0.1:80 111.com/123.php
这时候会看到一个以日期为后缀的新日志文件
查看新生成的日志文件内容,会看到就是刚刚curl命令访问的
cat /usr/local/apache2/logs/123.com-access_20180727.log
在以后的凌晨0点的时候,就会生成一个新的日志
另外还需要做一个任务计划,超过一个月或两个月的日志删除,如果不删除,那是否切割日志就没有意义了
日志切割总结
做日志切割的目的,是为了防止磁盘写满,另一个目的就是为了更方便的去管理日志