1、文件切割
- 1、指定切割文件的大小
split -b 1024m access_log -d -a 2 access_log --verbose
- 2、指定切割文件的文字行数
split -l 1000000 access_log -d -a 2 access_log_ --verbose
参数介绍:
-b 切割按大小
-l 切割按行数
-d 文件名称后缀系数不是字母而是数字
-a 后缀系数的位数,上面命令指定了两2位数
--verbose 切割过程中输出文件特征和进度
access_log 要切割的文件
access_log_切割后的别名前缀
更多命令:split --help
2、配置apache2.4日志分割
- 进入apache配置文件目录
cd /usr/local/apache2/conf
打开配置文件
vi httpd.conf
注释掉这两行
ErrorLog "logs/error_log"
CustomLog "logs/access_log" common
加上这两行
ErrorLog "| /usr/local/apache2/bin/rotatelogs -l logs/apache60_error_%Y%m%d.log 86400"
CustomLog "| /usr/local/apache2/bin/rotatelogs -l logs/apache60_access_%Y%m%d.log 86400" common
我的apache安装目录是/usr/local/apache2/
,目录根据自己的需要修改。可以看出前边的目录是rotatelogs
文件的位置,位于阿帕奇的目录下,logs/apache60_access_%Y%m%d.log
是指在apache目录下的logs目录,后边是要生成的日志文件得别名,%Y%m%d
代表时间,86400
代表间隔一天。
接着访问下的网站,logs目录下则出现这两个日志文件。
修改日志记录级别
apache默认级别是warn,那么warn级别以上的日志都会记录,会产生大量“文件不存在”的erro级别的错误日志。
所以建议使用 crit 级别的设置,这样只记录致命级别以上的日志,有效减少日志数量。 把LogLevel warn
更改为LogLevel crit
然后重启apache即可。
LogLevel crit
Level Description Example
emerg 紧急 - 系统无法使用。 “Child cannot open lock file. Exiting”
alert 必须立即采取措施。 “getpwuid: couldn’t determine user name from uid”
crit 致命情况。 “socket: Failed to get a socket, exiting child”
error 错误情况。 “Premature end of script headers”
warn 警告情况。 “child process 1234 did not exit, sending another SIGHUP”
notice 一般重要情况。 “httpd: caught SIGBUS, attempting to dump core in …”
info 普通信息。 “Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)…”
debug 出错级别信息 “Opening config file …”