当项目时间越来越久时,项目日志就会越来越大。前不久笔者的一个项目log日志就达到6000M,想打开文件查看,加载5分钟过去了都没有打开。因此,决定使用logratate工具进行分割日志。
logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。
一 logrotate的配置文件
/etc/logrotate.conf
和/etc/logrotate.d/
,其中
logrotate.conf
是主要的参数文件,logrotate.d
是一个目录,该目录里面的所有数据都会被主动读入/etc/logrotate.conf
当中来进行。另外,在/etc/logrotate.d/
里面的文件中,如果没有指定一些详细的设置,则以 /etc/logrotate.conf
的规定来指定为默认值。
二 创建配置文件
cd /etc/logrotate.d/
cp xxx newxxx
vi newxxx
就是到logrotate.d文件夹下,复制一份先有的,改一下。需要说明一下里面的配置属性:
下面是一份案例newxxx:
/var/test/storage/logs/laravel.log {
su banboo banboo
size=30M
missingok
rotate 31
compress
delaycompress
notifempty
copytruncate
dateext
}
1.su banboo banboo
是 su <user> <group >
2.missingok
表示如果找不到log文件也没OK
3.compress
通过gzip
压缩转储以后的日志
4.nocompress
不需要压缩时,用这个参数
5.rotate
31 表示保留31天的备份文件
6.notifempty
表示如果log文件是空的,就不进行rotate
7.copytruncate
表示先复制log文件的内容,然后再清空
8.dateext
表示备份的日志文件后缀格式为YYYYMMDD
三 生效
执行下列命令
sudo /usr/sbin/logrotate -f /etc/logrotate.conf/newxxx
执行后,将出现备份文件,例如:laravel.log-20170517
网友评论