centos

Tomcat日志过大如何清理

小樊
93
2025-02-13 21:49:12
栏目: 智能运维

当Tomcat日志文件过大时,可能会占用大量磁盘空间,影响系统性能。以下是几种清理Tomcat日志的方法:

手动清理

  1. 查找日志文件: 使用命令 df -h 检查磁盘空间使用情况,确定是否需要清理日志。

    df -h
    
  2. 定位到Tomcat日志目录

    cd /path/to/tomcat/logs
    
  3. 清空或删除日志文件: 可以手动清空 catalina.out 文件:

    echo "" > catalina.out
    

    或者删除旧的日志文件:

    rm -rf catalina.*
    

配置Tomcat禁用日志输出

  1. 修改 catalina.sh 文件: 在 catalina.sh 文件中找到以下内容并注释掉或修改:
    if [ -z "$CATALINA_OUT"] ;then
        CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
    fi
    
    修改为:
    if [ -z "$CATALINA_OUT"] ; then
        CATALINA_OUT=/dev/null
    fi
    

使用日志切割工具

  1. 安装 cronolog

    wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
    tar zxvf cronolog-1.6.2.tar.gz
    cd cronolog-1.6.2
    ./configure
    make install
    
  2. 配置 catalina.sh: 修改 catalina.sh 文件,添加以下内容:

    org.apache.catalina.startup.Bootstrap "$@" start \
    |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &
    
  3. 重启Tomcat

    service tomcat restart
    

使用 logrotate 进行日志轮转

  1. 创建 logrotate 配置文件: 在 /etc/logrotate.d/ 目录下创建一个新的配置文件,例如 tomcat

    /usr/local/tomcat/logs/catalina.out {
        daily rotate 7
        compress
        missingok
        notifempty
        copytruncate
    }
    
  2. 配置 logrotate 执行频率logrotate 通常在系统的 cron 定时任务中设置自动执行,默认每天运行一次。

通过 logging.properties 配置日志管理

  1. 修改 logging.properties 文件: 在 conf/logging.properties 文件中,可以设置日志文件的最大保留天数:

    handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler
    
    1catalina.org.apache.juli.AsyncFileHandler.level = FINE
    1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
    
  2. 重启Tomcat: 修改配置文件后,通常需要重启Tomcat服务以使更改生效。

[1,2,3,4,5,6,7,8,9,10,11,12]

0
看了该问题的人还看了