ubuntu

如何解决Ubuntu Tomcat日志文件过大问题

小樊
46
2025-08-17 03:02:49
栏目: 智能运维

解决Ubuntu Tomcat日志文件过大问题,可采用以下方法:

  1. 使用logrotate进行日志轮转

    • 安装logrotate:sudo apt-get install logrotate
    • 编辑配置文件/etc/logrotate.d/tomcat,添加以下内容:
      /usr/local/tomcat/logs/catalina.out {
          daily
          rotate 7
          compress
          missingok
          notifempty
          copytruncate
      }
      
      daily表示每天轮转,rotate 7保留7天日志,compress压缩旧日志,copytruncate清空原文件而不删除)
    • 测试配置:sudo logrotate -d /etc/logrotate.d/tomcat,确认无误后重启Tomcat。
  2. 切换至Log4j日志框架

    • 下载log4j-1.2.17.jartomcat-juli-adapters.jar,放入Tomcat的lib目录。
    • 修改conf/logging.properties,配置日志文件路径、大小及保留天数,例如:
      catalina.org.apache.juli.FileHandler.limit=10MB
      catalina.org.apache.juli.FileHandler.count=7
      
    • 重启Tomcat生效。
  3. 使用cronolog工具切割日志

    • 安装cronolog:sudo apt-get install cronolog
    • 修改bin/catalina.sh,将日志输出指向cronolog,例如:
      CATALINA_OUT="$CATALINA_BASE/logs/catalina.%Y-%m-%d.out"
      exec "$_RUNJAVA" ... | /usr/local/sbin/cronolog "$CATALINA_OUT" &
      
    • 重启Tomcat。
  4. 定期清理日志脚本

    • 创建清理脚本clear_tomcat_logs.sh
      #!/bin/bash
      LOG_PATH="/usr/local/tomcat/logs"
      find "$LOG_PATH" -mtime +7 -name "*.log" -exec rm -rf {} \;
      echo "" > "$LOG_PATH/catalina.out"
      
    • 赋予执行权限并添加定时任务(如每天凌晨执行):
      sudo chmod +x clear_tomcat_logs.sh
      sudo crontab -e,添加0 0 * * * /path/to/clear_tomcat_logs.sh

注意:操作前建议备份重要日志,生产环境建议优先使用logrotate或Log4j,避免日志丢失影响故障排查。

0
看了该问题的人还看了