清理Tomcat历史日志可以通过以下几种方法进行:
停止Tomcat服务: 在清理日志之前,请确保Tomcat服务已经停止,以避免数据丢失或文件损坏的风险。
sudo systemctl stop tomcat
删除旧的日志文件:
使用 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 {} \;
清空日志文件:
可以手动清空 catalina.out
文件:
sudo echo "" > /path/to/tomcat/logs/catalina.out
创建清理脚本:
在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 {} \;
赋予脚本执行权限:
chmod +x $LOGS_PATH/clean.sh
设置定时任务:
使用 crontab -e
添加定时任务,例如每天凌晨执行清理脚本:
0 0 * * * $LOGS_PATH/clean.sh
安装Logrotate:
sudo apt-get install logrotate
配置Logrotate:
在 /etc/logrotate.d/
目录下创建或编辑Tomcat的日志轮转配置文件,例如 tomcat
:
/usr/local/tomcat/logs/catalina.out {
daily rotate 7
compress
missingok
notifempty
copytruncate
}
重新加载Logrotate配置:
sudo logrotate -f /etc/logrotate.conf
下载并配置Log4j:
下载 log4j-1.2.17.jar
和 tomcat-juli-adapters.jar
,并将它们放置在Tomcat的 lib
目录下。
修改 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>
重启Tomcat: 重启Tomcat以使配置生效。
sudo systemctl restart tomcat