关于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,具体可以依据项目实际情况来配置

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

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

(2)常用级别及说明:

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

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

    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="WARNING" />
    </root> 

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日志级别
  • 调整并优化项目的日志记录与日志级别
  • 通过定时任务定期清理日志信息

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

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值