一、日志切割介绍      

tomcat日志一般产生的是比较大的,catalina.out文件一般占用比较大,如果不做切割的话,很容易占满存储磁盘,一般需要做切割,切割的方法有多种,现介绍一种系统自动的日志切割的工具:logrotate软件,一般是系统自动的,非常好用。

二、使用logrotate分割tomcat日志

logrotate是个强大的系统软件,它对日志有着一套完整的操作模式,譬如:转存。邮件和压缩等,并且默认logrotate加到cron(/etc/cron.daily/logrotate)作为每日任务执行。自动有了logrotate,可以不用使用脚本切割了。

配置tomcat的日志分割      

针对生产中的tomcat实例日志的切割,配置如下:

 cat /etc/logrotate.d/tomcat

/webserver/tomcat/college-admin/logs/catalina.out

/webserver/tomcat/college-server/logs/catalina.out

/webserver/tomcat/innospace-file-server/logs/catalina.out

/webserver/tomcat/innospace-admin/logs/catalina.out

/webserver/tomcat/innospace-server-news/logs/catalina.out

/webserver/tomcat/innospace-server-activity/logs/catalina.out

/webserver/tomcat/innospace-server-space/logs/catalina.out

/webserver/tomcat/innospace-server-park/logs/catalina.out

/webserver/tomcat/innospace-server/logs/catalina.out {

daily

rotate 30

missingok

dateext

nocompress

notifempty

copytruncate

}

参数详解:

daily  指定转储周期为每天

rotate  5  指定日志文件删除之前转储的次数,0指没有备份,5只保留 5个备份

missingok  如果日志不存在则忽略该警告信息

dateext      文件后缀是日期格式,也就是切割后文件是xxx.log-20150828.gz

nocompress   通过gzip压缩转储以后的日志

notifempty     如果是空文件的话,不转储

copytruncate   用于还在打开中的日志文件,把当前日志备份并截断

立即截断日志:# logrotate --force /etc/logrotate.d/tomcat

指定切割时间:

[root@master ~]# crontab -l

00 00 * * * /usr/sbin/logrotate --force /etc/logrotate.d/tomcat

三、logrotate参数说明

参数名称    含义 

compress                 通过gzip 压缩转储以后的日志 

nocompress               不压缩转储 

copytruncate             打开中的日志转储 

nocopytruncate              备份日志文件,但是不截断 

nocreate                    不建立新日志 

delaycompress           延迟压缩,和compress一起使用时,转储的日志文件到下一次转储时才压缩 nodelaycompress         转储并压缩 

errors address          转储时错误信息发送指定地址 

ifempty                 文件为空也转储 

notifempty                  如果文件为空,不转储 

mail address            发送转储日志到指定邮箱 

nomail                  转储不发邮件 

olddir directory            转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 

noolddir                    转储后的日志文件和当前日志文件放在同一个目录下 prerotate/endscript         在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行 postrotate/endscript    在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 

daily                   按天存储

weekly                  按周存储 

monthly                 按月存储 

rotate count            日志转存保留的前多少份,多余的会被删除 

tabootext [+] list      让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ size 

size           当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB 

extension           指定转存日志后缀名,例如 .log 

dateformat          设置日志文件名日期格式默认为 %Y%m%d

参考文献:http://pvbutler.blog.51cto.com/7662323/1653088