首页 > 代码库 > tomcat 日志切割
tomcat 日志切割
一、日志切割介绍
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
tomcat 日志切割