关于Tomcat服务器catalina.out文件过大的问题

一、问题:当服务部署Tomcat后,运行时间久了,catalina.out文件就会越来越大,最终导致服务器磁盘空间不足,影响系统的稳定性。

二、解决方案:

1、修改Tomcat的日志配置,配置日志的级别:

(1)、Tomcat日志分类:

  • catalina:标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out
  • localhost:localhost.{yyyy-MM-dd}.log主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,它也是包含tomcat的启动和暂停时的运行日志
  • manager:tomcat manager项目专有的日志文件
  • host-manager:存放tomcat的自带的manager项目的日志信息
  • admin:存放tomcat的自带的admin日志信息

(2)、Tomcat日志级别:

SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别)

(3)、配置日志级别:

tomcat根目录:conf/logging.properties,默认是FINE,具体可以依据项目实际情况来配置
关于Tomcat服务器catalina.out文件过大的问题_第1张图片

 2、修改项目的日志配置,配置日志输出的级别:(下面以Log4j日志组件为例)

(1)日志级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL

(2)常用级别及说明:

  • ERROR:输出错误信息。比如接口访问超时,用try/catch 捕获异常,发生异常的时候log.error输出错误信息
  • WARN:输出警告信息,表明具有潜在危害的情况
  • INFO:输出提示信息,指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
  • DEBUG:输出调试信息,指出细粒度信息事件对调试应用程序是非常有帮助的,一般使用log.debug()进行跟踪调试

(3)、参考案例如下(可依据项目实际情况进行配置):

    
    
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n
        
    
    
        
     

3、清理catalina.out文件(除非不再需要Tomcat日志,否则不建议)

(1)、手动清理:切换到tomcat的logs下,运行如下命令清空日志数据

echo " "  > catalina.out

(2)、自动清理:编写脚本,放入计划任务中,定时清理

crontab -e #添加任务
0 24 * * *    sh /root/clean_catalina.out.sh
vim clean_catalina.out.sh #定义任务执行的脚本内容
#!/usr/bin/bash 
echo " " > /usr/local/tomcat/logs/catalina.out
service crond restart #重启crontab 服务,使修改生效

(3)、对catalina.out日志文件进行切分,这样就可以通过脚本对时间久远的日志进行定时清理:

常用的切分技术:cronolog、logrotate等

将catalina.out按天进行切分,如:catalina.2022-05-15.out、catalina.2022-05-16.out,然后可以通过定时任务对某个时间段内的日志进行清理

三、总结:

综上所述,遇到Tomcat日志文件catalina.out占用磁盘空间过大的情况,可以从以下三方面入手:

  • 调整Tomcat日志级别
  • 调整并优化项目的日志记录与日志级别
  • 通过定时任务定期清理日志信息

如有更好的方案,欢迎评论交流

你可能感兴趣的:(tomcat,服务器)