分割tomcat的catalina.out日志

 系统环境:

操作系统:centos7.9

tomcat-9.0.50

问题起因:

近日突然发现磁盘占用率很高,经过排查发现tomcat下的catalina.out文件太大导致的。catalina.out文件一直在累加,没有根据时间进行每天切割,下面我们就操作进行每天切割,然后定期删除以前的无用日志。

方案一:cronolog

1、安装cronolog

使用cronolog包实现按日期分割catalina.out日志文件

yum install -y cronolog

 查看cronolog安装目录,方便后期使用

which cronolog

 

 2、修改bin/catalina.sh文件 

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

扫描二维码关注公众号,回复: 14457051 查看本文章

| /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out"-`date "+%Y-%m-%d"`".log >> /dev/null &

 3、重启tomcat,进行测试

重启后,发现已经生成了新的日志文件,操作成功。

 方案二:logrotate

1、如果要压缩日志,需要先取消配置文件的注释。

vim /etc/logrotate.conf

 

2、 添加指定文件,在/etc/logrotate.d/目录下新建一个文件进行配置。

vim /etc/logrotate.d/tomcat

 /home/tomcat/logs/catalina.out{                #需要进行轮转的文件
        su root root
        copytruncate                                        #备份日志并截断源文件
        daily                                                     # 每天进行文件的轮转                               
        rotate 30                                              #指定日志文件删除之前转储的次数
        missingok                                            # 如果要轮转的文件丢失了,继续轮转而不报错
        size 100M                                            #当文件大于100MB时,就会轮转
        compress                                              #将日志进行压缩

        delaycompress                                    #延迟压缩,先rotate,等到下次rotate时,才压缩上次的日志。
        dateext                                                #使用当期日期作为命名格式
        dateformat .%Y-%m-%d
}

3、执行方式:自动执行

(1)、每天晚上crond守护进程会运行在/etc/cron.daily目录中的任务列表;
(2)、与logrotate相关的脚本也在/etc/cron.daily目录中。运行的方式为"/usr/bin/logrotate /etc/logrotate.conf";
(3)、/etc/logrotate.conf文件include了/etc/logrotate.d/目录下的所有文件。还包括我们上面刚创建的tomcat文件;
(4)、/etc/logrotate.d/tomcat文件会触发/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的轮转。

手动执行:

logrotate /etc/logrotate.conf                           #执行所有的logrotate

logrotate --force /etc/logrotate.d/tomcat        #只轮转刚刚的tomcat配置文件


 

猜你喜欢

转载自blog.csdn.net/tiny_du/article/details/119037183
今日推荐