linux

如何清理Tomcat历史日志

小樊
33
2025-08-02 06:36:32
栏目: 智能运维

清理Tomcat历史日志可以通过以下几种方法进行:

手动清理

  1. 停止Tomcat服务: 在清理日志之前,请确保Tomcat服务已经停止,以避免数据丢失或文件损坏的风险。

    sudo systemctl stop tomcat
    
  2. 删除旧的日志文件: 使用 find 命令来查找并删除旧的日志文件。例如,要删除30天前的所有日志文件,可以使用以下命令:

    sudo find /path/to/tomcat/logs/ -type f -name "*.log" -mtime +30 -exec rm -rf {} \;
    sudo find /path/to/tomcat/logs/ -type f -name "*.txt" -mtime +30 -exec rm -rf {} \;
    
  3. 清空日志文件: 可以手动清空 catalina.out 文件:

    sudo echo "" > /path/to/tomcat/logs/catalina.out
    

使用脚本自动清理

  1. 创建清理脚本: 在Tomcat的 bin 目录下创建一个名为 clean.sh 的脚本文件,内容如下:

    #!/bin/bash
    LOGS_PATH="/path/to/tomcat/logs"
    DAYS=30 # 可以根据需要修改天数
    
    # 复制 catalina.out 按日期命名
    cp $LOGS_PATH/catalina.out $LOGS_PATH/catalina.`date +%Y-%m-%d`.out
    
    # 清空 catalina.out
    echo "" > $LOGS_PATH/catalina.out
    
    # 删除30天以前的日志文件
    find $LOGS_PATH -type f -name "catalina.*.out" -mtime +$DAYS -exec rm -rf {} \;
    find $LOGS_PATH -type f -name "localhost.*.log" -mtime +$DAYS -exec rm -rf {} \;
    find $LOGS_PATH -type f -name "localhost_access_log.*.txt" -mtime +$DAYS -exec rm -rf {} \;
    find $LOGS_PATH -type f -name "catalina.*.log" -mtime +$DAYS -exec rm -rf {} \;
    find $LOGS_PATH -type f -name "manager.*.log" -mtime +$DAYS -exec rm -rf {} \;
    find $LOGS_PATH -type f -name "host-manager.*.log" -mtime +$DAYS -exec rm -rf {} \;
    find $LOGS_PATH -type f -name "fileservice.log.*" -mtime +$DAYS -exec rm -rf {} \;
    
  2. 赋予脚本执行权限

    chmod +x $LOGS_PATH/clean.sh
    
  3. 设置定时任务: 使用 crontab -e 添加定时任务,例如每天凌晨执行清理脚本:

    0 0 * * * $LOGS_PATH/clean.sh
    

使用Logrotate进行日志轮转

  1. 安装Logrotate

    sudo apt-get install logrotate
    
  2. 配置Logrotate: 在 /etc/logrotate.d/ 目录下创建或编辑Tomcat的日志轮转配置文件,例如 tomcat

    /usr/local/tomcat/logs/catalina.out {
        daily rotate 7
        compress
        missingok
        notifempty
        copytruncate
    }
    
  3. 重新加载Logrotate配置

    sudo logrotate -f /etc/logrotate.conf
    

使用Log4j等日志框架

  1. 下载并配置Log4j: 下载 log4j-1.2.17.jartomcat-juli-adapters.jar,并将它们放置在Tomcat的 lib 目录下。

  2. 修改 context.xml: 在Tomcat的 conf 目录下找到 context.xml 文件,添加或修改以下配置:

    <Context>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/usr/local/tomcat/logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false" />
        <Jar path="/usr/local/tomcat/lib/log4j-1.2.17.jar" />
        <Jar path="/usr/local/tomcat/lib/tomcat-juli-adapters.jar" />
    </Context>
    
  3. 重启Tomcat: 重启Tomcat以使配置生效。

    sudo systemctl restart tomcat
    

0
看了该问题的人还看了