catalina.out其實是tomcat的標准輸出(stdout)和標准出錯(stderr),這是在tomcat的啟動腳本里指定的,如果沒有修改的話stdout和stderr會重定向到這里。所以我們在應用里使用System.out打印的東西都會到這里來。另外,如果我們在應用里使用其他的日志框架,配置了向Console輸出的,則也會在這里出現。
如果Tomcat的catalina.out的大小超過了2G,那么tomcat可能在沒有錯誤提示的情況下崩潰、無法啟動。所以為了避免出現這個問題,我們應該每天分割catalina.out。
在此我使用的是logrotate工具切割catalina.out文件
1、首先在/etc/logrotate.d/目錄創建一個tomcat文檔,內容如下:
/data/apache-tomcat-9.0.13/logs/catalina.out { copytruncate daily rotate 10 compress missingok size 16M }
配置說明:
/data/apache-tomcat-9.0.13/logs/catalina.out #服務器中catalina.out存放地址
copytruncate #拷貝原日志文件,並將其大小變為0
daily #每天切割
rotate 10 #保留最多10個文件
compress #壓縮分割后的文件
missingok #文件丟失了,繼續切割而不報錯
size 16M #當catalina.out文件大於16M時,就切割
2、自動切割
- 每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務
- 這個會觸發/etc/cron.daily/logrotate文件,logrotate一般是隨linux安裝的。它會執行這個命令-“/etc/sbin/logrotate /etc/logrotate.conf”(注意空格)
- /etc/logrotate.conf 包含了/etc/logrotate.d目錄下的所有腳本
- 這個會觸發上一步寫的/etc/logrotate.d/tomcat文件
3、手動切割
執行以下語句來手動運行cron任務
/usr/sbin/logrotate /etc/logrotate.conf
或
logrotate -vf /etc/logrotate.d/tomcat
以上是生產環境使用的tomcat日志文件catalina.out切割操作。