淺析Tomcat各種日志的關(guān)系與catalina.out文件的分割問(wèn)題
Tomcat 各日志之間的關(guān)系
一圖勝千言!
其他日志如 localhost.{yyyy-MM-dd}.log
、localhost-access.{yyyy-MM-dd}.log
的 localhost
是context的名稱(chēng),往往一個(gè)應(yīng)用程序是一個(gè)名稱(chēng)。
分割 catalina.out
按上圖所示,隨著運(yùn)行時(shí)間變久 catalina.out 只會(huì)越來(lái)越大,但控制臺(tái)輸出的日志也有用,比如某些開(kāi)發(fā)人員喜歡使用e.printStackTrace()
、System.out.println()
、System.err.println()
都會(huì)打印到 catalina.out 中, 這些日志也有用!所以就需要日志分割做備份。
最簡(jiǎn)單的方法是使用 Linux 自帶的 logrotate(日志輪轉(zhuǎn))功能分割 catalina.out。
以 catalina.out 路徑為 /opt/tomcat/logs/catalina.out
舉例:
#進(jìn)入 /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
以上配置說(shuō)明:
- /opt/tomcat/logs/catalina.out #catalina.out存放地址
- copytruncate #拷貝原日志文件,并將其清空
- daily #每日切割
- rotate 15 #最多保留15個(gè)文件
- compress #壓縮分割后的文件
- missingok #允許catalina.out文件不存在,待文件出現(xiàn)再開(kāi)始切割
- notifempty #當(dāng)日志文件為空時(shí),不進(jìn)行輪轉(zhuǎn)
- size 200M #當(dāng)catalina.out文件大于200M時(shí)切割
- dateext # 日期擴(kuò)展,將切割后的日志文件名添加日期
更多配置參數(shù):
compress #通過(guò)gzip 壓縮轉(zhuǎn)儲(chǔ)以后的日志 nocompress #不做gzip壓縮處理 copytruncate #用于還在打開(kāi)中的日志文件,把當(dāng)前日志備份并截?cái)?;是先拷貝再清空的方式,拷貝和清空之間有一個(gè)時(shí)間差,可能會(huì)丟失部分日志數(shù)據(jù)。 nocopytruncate #備份日志文件不過(guò)不截?cái)? create mode owner group #輪轉(zhuǎn)時(shí)指定創(chuàng)建新文件的屬性,如create 0777 nobody nobody nocreate #不建立新的日志文件 delaycompress #和compress 一起使用時(shí),轉(zhuǎn)儲(chǔ)的日志文件到下一次轉(zhuǎn)儲(chǔ)時(shí)才壓縮 nodelaycompress #覆蓋 delaycompress 選項(xiàng),轉(zhuǎn)儲(chǔ)同時(shí)壓縮。 missingok #如果日志丟失,不報(bào)錯(cuò)繼續(xù)滾動(dòng)下一個(gè)日志 errors address #專(zhuān)儲(chǔ)時(shí)的錯(cuò)誤信息發(fā)送到指定的Email 地址 ifempty #即使日志文件為空文件也做輪轉(zhuǎn),這個(gè)是logrotate的缺省選項(xiàng)。 notifempty #當(dāng)日志文件為空時(shí),不進(jìn)行輪轉(zhuǎn) mail address #把轉(zhuǎn)儲(chǔ)的日志文件發(fā)送到指定的E-mail 地址 nomail #轉(zhuǎn)儲(chǔ)時(shí)不發(fā)送日志文件 olddir directory #轉(zhuǎn)儲(chǔ)后的日志文件放入指定的目錄,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng) noolddir #轉(zhuǎn)儲(chǔ)后的日志文件和當(dāng)前日志文件放在同一個(gè)目錄下 sharedscripts #運(yùn)行postrotate腳本,作用是在所有日志都輪轉(zhuǎn)后統(tǒng)一執(zhí)行一次腳本。如果沒(méi)有配置這個(gè),那么每個(gè)日志輪轉(zhuǎn)后都會(huì)執(zhí)行一次腳本 prerotate #在logrotate轉(zhuǎn)儲(chǔ)之前需要執(zhí)行的指令,例如修改文件的屬性等動(dòng)作;必須獨(dú)立成行 postrotate #在logrotate轉(zhuǎn)儲(chǔ)之后需要執(zhí)行的指令,例如重新啟動(dòng) (kill -HUP) 某個(gè)服務(wù)!必須獨(dú)立成行 daily #指定轉(zhuǎn)儲(chǔ)周期為每天 weekly #指定轉(zhuǎn)儲(chǔ)周期為每周 monthly #指定轉(zhuǎn)儲(chǔ)周期為每月 rotate count #指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0 指沒(méi)有備份,5 指保留5 個(gè)備份 dateext #使用當(dāng)期日期作為命名格式 dateformat .%s #配合dateext使用,緊跟在下一行出現(xiàn),定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個(gè)參數(shù) size 數(shù)值與單位 #當(dāng)日志文件到達(dá)指定的大小時(shí)才轉(zhuǎn)儲(chǔ),缺少單位是bytes,可指定KB、MB
更多參數(shù)部分參考自文章:https://cloud.tencent.com/developer/article/1681716
到此這篇關(guān)于Tomcat各種日志的關(guān)系與catalina.out文件的分割的文章就介紹到這了,更多相關(guān)Tomcat catalina.out文件的分割內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決tomcat啟動(dòng)報(bào)錯(cuò):一個(gè)或多個(gè)listeners啟動(dòng)失敗問(wèn)題
這篇文章主要介紹了解決tomcat啟動(dòng)報(bào)錯(cuò):一個(gè)或多個(gè)listeners啟動(dòng)失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Tomcat10配置端口號(hào)為443(使用https訪問(wèn))
tomcat配置好了以后默認(rèn)是使用8080端口訪問(wèn)的,本文主要介紹了Tomcat10配置端口號(hào)為443,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Tomcat部署war包并成功訪問(wèn)網(wǎng)頁(yè)詳細(xì)圖文教程
Tomcat是目前web開(kāi)發(fā)中非常流行的Web服務(wù)器,這篇文章主要給大家介紹了關(guān)于Tomcat部署war包并成功訪問(wèn)網(wǎng)頁(yè)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12Tomcat報(bào)錯(cuò): JDBC unregister 解決辦法
這篇文章主要介紹了Tomcat報(bào)錯(cuò): JDBC unregister 解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05Tomcat 7通過(guò)設(shè)置不同的端口部署兩個(gè)項(xiàng)目
最近因?yàn)橛袀€(gè)Web項(xiàng)目,需要部署兩個(gè)相同項(xiàng)目到Tomcat中,第二個(gè)是拷貝第一個(gè)的,使用的項(xiàng)目是使用SpringMVC框架的,嘗試了幾種方法,這篇文章給大家總結(jié)一個(gè)比較靠譜的方法,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-10-10Tomcat中GET和POST請(qǐng)求時(shí)亂碼問(wèn)題及解決
這篇文章主要介紹了Tomcat中GET和POST請(qǐng)求時(shí)亂碼問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06利用systemctl管理Tomcat啟動(dòng)、停止、重啟及開(kāi)機(jī)啟動(dòng)詳解
這篇文章主要給大家介紹了關(guān)于利用systemctl管理Tomcat啟動(dòng)、停止、重啟及開(kāi)機(jī)啟動(dòng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-10-10