清理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