实际生产中,使用一个log文件来记录所有信息的话,一方面,时间过久,就会占用很大的空间;另一方面,就是一个文件记录对于后期日志的查看非常不利。为了解决查看了一下资料,发现linux里面有一个logrotate 文件,通过增加配置,可以实现日志按天切割。
具体的操作如下:
1. 在 /etc/logrotate.d 路径下创建一个新的文件(我的项目创建的是:pyweb_log ),具体内容如下:
/home/python/Desktop/test_code/webserver/logs/py_web.log{ # py_web.log日志文件所在的绝对路径
daily # 日志切换频率是一天
dateext # 切换后的日志文件格式为:py_web.log-日期 ,没有这行配置参数的话,会附加一个小数点与一个数字序号
copytruncate # 在复制当前日志文件之后,www.linuxidc.com会将日志文件清空;
nocompress # 不压缩切换后的日志文件
rotate 15 # 保存15份旧的日志文件
}
2. 编辑crontab文件
2.1 crontab -e 进入编辑
2.2 在此文件最后插入此行配置参数 :
00 24 * * * /usr/sbin/logrotate -f /etc/logrotate.d/pyweb_log >/dev/null 2>&1
2.3 crontab -l 查看crontab 文件所有的定时任务
3. 配置完1 2 两步之后,测试日志切割是否有效
# 强制执行日志切换,pyweb_log是在/etc/logrotate.d下的文件名
logrotate -f pyweb_log
4. 注释 /etc/anacrontab
# 1 5 cron.daily nice run -parts /etc/cron.daily
经过上边的操作,一般情况下就可以将日志成功切割。