Debian系統下的Tomcat日志文件過大可能會占用大量磁盤空間,影響系統性能。以下是幾種解決Tomcat日志文件過大的方法:
安裝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 --prefix=/usr/local/cronolog
make
make install
ln -s /usr/local/cronolog/sbin/* /usr/local/sbin/
修改Tomcat啟動腳本:
編輯/path/to/tomcat/bin/catalina.sh
,在以下幾行進行如下修改:
# 注釋掉下面這行
# touch "/path/to/tomcat/logs/catalina.out"
# 修改下面這行
org.apache.catalina.startup.Bootstrap "@" start "/usr/local/sbin/cronolog \"/path/to/tomcat/logs/catalina.%Y-%m-%d.out\" /dev/null &"
重啟Tomcat: 執行以下命令重啟Tomcat,使配置生效:
/path/to/tomcat/bin/startup.sh
/path/to/tomcat/bin/shutdown.sh
安裝logrotate(如果尚未安裝):
sudo apt-get install logrotate
創建或編輯logrotate配置文件:
在/etc/logrotate.d/
目錄下創建或編輯tomcat
配置文件:
sudo vim /etc/logrotate.d/tomcat
內容如下:
/path/to/tomcat/logs/catalina.out {
copytruncate
daily
rotate 7
missingok
compress
size 16M
}
測試logrotate配置: 執行以下命令測試配置是否正確:
logrotate -d /etc/logrotate.conf # -d 表示測試模式
手動執行logrotate: 如果需要立即執行日志輪轉:
logrotate -f /etc/logrotate.conf # -f 表示強制模式
編輯logging.properties
文件:
找到/path/to/tomcat/conf/logging.properties
文件,修改以下配置:
org.apache.juli.FileHandler.level = WARNING
org.apache.juli.FileHandler.directory = /path/to/tomcat/logs
org.apache.juli.FileHandler.prefix = catalina
重啟Tomcat: 使配置生效:
/path/to/tomcat/bin/startup.sh
/path/to/tomcat/bin/shutdown.sh
clean_tomcat_logs.sh
,內容如下:#!/bin/bash
LOG_DIR="/path/to/tomcat/logs"
find "$LOG_DIR" -mtime +7 -name "*.log" -exec rm -f {} \;
find "$LOG_DIR" -mtime +7 -name "*.txt" -exec rm -f {} \;
賦予腳本執行權限:chmod +x /path/to/tomcat/logs/clean_tomcat_logs.sh
使用crontab
定時執行腳本:crontab -e
添加以下行以每天凌晨執行清理任務:0 0 * * * /path/to/tomcat/logs/clean_tomcat_logs.sh