溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Tomcat各種日志的關系與catalina.out文件的分割問題

發(fā)布時間:2021-10-15 11:16:17 來源:億速云 閱讀:224 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“如何理解Tomcat各種日志的關系與catalina.out文件的分割問題”,在日常操作中,相信很多人在如何理解Tomcat各種日志的關系與catalina.out文件的分割問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解Tomcat各種日志的關系與catalina.out文件的分割問題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Tomcat 各日志之間的關系

一圖勝千言!

如何理解Tomcat各種日志的關系與catalina.out文件的分割問題

其他日志如 localhost.{yyyy-MM-dd}.log、localhost-access.{yyyy-MM-dd}.loglocalhost 是context的名稱,往往一個應用程序是一個名稱。

分割 catalina.out

按上圖所示,隨著運行時間變久 catalina.out 只會越來越大,但控制臺輸出的日志也有用,比如某些開發(fā)人員喜歡使用e.printStackTrace()、System.out.println()、System.err.println() 都會打印到 catalina.out 中, 這些日志也有用!所以就需要日志分割做備份。

最簡單的方法是使用 Linux 自帶的 logrotate(日志輪轉)功能分割 catalina.out。

以 catalina.out 路徑為 /opt/tomcat/logs/catalina.out 舉例:

#進入 /etc/logrotate.d,此目錄是 logrotate.d 子系統(tǒng)的配置目錄,不推薦修改主配置文件。
cd /etc/logrotate.d
cat > tomcat<<EOF
/opt/tomcat/logs/catalina.out{
        copytruncate
	daily
        rotate 15
        compress
        missingok
        notifempty
        size 200M
        dateext
}
EOF

以上配置說明:

  • /opt/tomcat/logs/catalina.out #catalina.out存放地址

  • copytruncate #拷貝原日志文件,并將其清空

  • daily #每日切割

  • rotate 15 #最多保留15個文件

  • compress #壓縮分割后的文件

  • missingok #允許catalina.out文件不存在,待文件出現(xiàn)再開始切割

  • notifempty #當日志文件為空時,不進行輪轉

  • size 200M #當catalina.out文件大于200M時切割

  • dateext # 日期擴展,將切割后的日志文件名添加日期

更多配置參數(shù):

compress #通過gzip 壓縮轉儲以后的日志
nocompress #不做gzip壓縮處理
copytruncate #用于還在打開中的日志文件,把當前日志備份并截斷;是先拷貝再清空的方式,拷貝和清空之間有一個時間差,可能會丟失部分日志數(shù)據(jù)。
nocopytruncate #備份日志文件不過不截斷
create mode owner group #輪轉時指定創(chuàng)建新文件的屬性,如create 0777 nobody nobody
nocreate #不建立新的日志文件
delaycompress #和compress 一起使用時,轉儲的日志文件到下一次轉儲時才壓縮
nodelaycompress #覆蓋 delaycompress 選項,轉儲同時壓縮。
missingok #如果日志丟失,不報錯繼續(xù)滾動下一個日志
errors address #專儲時的錯誤信息發(fā)送到指定的Email 地址
ifempty #即使日志文件為空文件也做輪轉,這個是logrotate的缺省選項。
notifempty #當日志文件為空時,不進行輪轉
mail address #把轉儲的日志文件發(fā)送到指定的E-mail 地址
nomail #轉儲時不發(fā)送日志文件
olddir directory #轉儲后的日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統(tǒng)
noolddir #轉儲后的日志文件和當前日志文件放在同一個目錄下
sharedscripts #運行postrotate腳本,作用是在所有日志都輪轉后統(tǒng)一執(zhí)行一次腳本。如果沒有配置這個,那么每個日志輪轉后都會執(zhí)行一次腳本
prerotate #在logrotate轉儲之前需要執(zhí)行的指令,例如修改文件的屬性等動作;必須獨立成行
postrotate #在logrotate轉儲之后需要執(zhí)行的指令,例如重新啟動 (kill -HUP) 某個服務!必須獨立成行
daily #指定轉儲周期為每天
weekly #指定轉儲周期為每周
monthly #指定轉儲周期為每月
rotate count #指定日志文件刪除之前轉儲的次數(shù),0 指沒有備份,5 指保留5 個備份
dateext #使用當期日期作為命名格式
dateformat .%s #配合dateext使用,緊跟在下一行出現(xiàn),定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個參數(shù)
size 數(shù)值與單位 #當日志文件到達指定的大小時才轉儲,缺少單位是bytes,可指定KB、MB

到此,關于“如何理解Tomcat各種日志的關系與catalina.out文件的分割問題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI