Tomcat日志自動(dòng)分割的三種方法
修改前的 tomcat 都是將所有數(shù)據(jù)保存在一個(gè)日志文件 catalina.out 中,平時(shí)實(shí)驗(yàn)環(huán)境下沒(méi)有什么問(wèn)題,但是在生產(chǎn)環(huán)境中,由于數(shù)據(jù)量巨大,會(huì)導(dǎo)致日志查看困難,因此將日志通過(guò)某些方法進(jìn)行自動(dòng)分割,而修改后的 tomcat 將會(huì)按“日”保存日志文件,文件格式例如:catalina.2022-6-10.out
1、方法一:使用 cronolog
官網(wǎng):http://cronolog.org
RPM包下載方法:在rpmfind.net上搜索cronolog選擇對(duì)應(yīng)RPM包復(fù)制下載鏈接即可
下戟安裝cronolog:
[root@localhost ~]# yum install https://rpmfind.net/linux/epel/7/x86_64/Packages/c/cronolog-1.6.2-14.el7.x86_64.rpm -y
查看 cronolog 安裝后所在目錄(驗(yàn)證安裝是否成功):
[root@localhost logs]# whereis cronolog cronolog: /usr/sbin/cronolog /usr/share/man/man1/cronolog.1m.gz
編輯 bin/catalina.sh 文件(tomcat的啟動(dòng)文件):
1.找到下面行并把它用#注釋掉 touch "$CATALINA_BASE"/logs/catalina.out 在新 Tomcat7 的 bin/catalina.sh 文件要注釋的行是 touch "SCATALINA_OUT" 2.替換下面的行(有兩處,不過(guò)一般在-security 中的那一行不需要去關(guān)注,不妨兩處全替換了): org.apache.catalina.startup.Bootstrop "$@" start \ ?? ?>> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 修改為 org.apache.catalina.startup.Bootstrap "$@" start \ 2>&1 | /usr/local/sbin/cronolog "$CATALINA_BASE" /logs/catalina-%Y-%m-%d.out>>/dex/null & 在新 Tomcat7 的 bin/catalina.sh 中需要替換的行是 >> "$CATALINA_OUT" 2>&1 "&" 替換后該行的內(nèi)容與上面是一樣的 注:為什么 Tomcat7 后會(huì)有所不同,因?yàn)樵谒?catalina.sh 文件中有如下定義 CATALINA_OUT="$CATALINA_BASE" /logs/catalina.out 3.保存 catalina.sh 文件并重啟 Tomcat 即可 [root@localhost ~]# systemctl restart tomcat.service
查看日志分割結(jié)果:
[root@localhost ~]# ll -d /usr/local/tomcat/logs/catalina-2022-06-10.out -rw-r--r-- 1 tomcat tomcat 106331 Jun 10 16:51 /usr/local/tomcat/logs/catalina-2022-06-10.out #可以看到已經(jīng)存在
2、方法二:使用 rotatelogs
`rotatelogg` 是 `apache` 自帶的工具
查看rotatelogs屬于哪個(gè)包(確認(rèn)是否包含在apache里面):
#通過(guò)觀察,確認(rèn)rotatelegs包含在apache包內(nèi),因此僅需要安裝httpd即可順帶安裝rotatelegs [root@localhost logs]# yum whatprovides */rotatelogs Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile ?* base: mirrors.dgut.edu.cn ?* extras: mirrors.dgut.edu.cn ?* updates: mirrors.dgut.edu.cn httpd-2.4.6-95.el7.centos.x86_64 : Apache HTTP Server Repo ? ? ? ?: base Matched from: Filename ? ?: /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.x86_64 : Apache HTTP Server Repo ? ? ? ?: updates Matched from: Filename ? ?: /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.1.x86_64 : Apache HTTP Server Repo ? ? ? ?: updates Matched from: Filename ? ?: /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.2.x86_64 : Apache HTTP Server Repo ? ? ? ?: updates Matched from: Filename ? ?: /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.4.x86_64 : Apache HTTP Server Repo ? ? ? ?: updates Matched from: Filename ? ?: /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.5.x86_64 : Apache HTTP Server Repo ? ? ? ?: updates Matched from: Filename ? ?: /usr/sbin/rotatelogs
安裝httpd:
[root@localhost ~]# yum install httpd -y
查看 rotatelogs 安裝后所在目錄(驗(yàn)證安裝是否成功):
[root@localhost ~]# whereis rotatelogs rotatelogs: /usr/sbin/rotatelogs /usr/share/man/man8/rotatelogs.8.gz
編輯 bin/catalina.sh 文件(tomcat的啟動(dòng)文件):
1.找到下面行并把它用#注釋掉 touch "$CATALINA_BASE"/logs/catalina.out 在新 Tomcat7 的 bin/catalina.sh 文件要注釋的行是 touch "SCATALINA_OUT" 2.替換下面的行(有兩處,不過(guò)一般在-security 中的那一行不需要去關(guān)注,不妨兩處全替換了): org.apache.catalina.startup.Bootstrop "$@" start \ ?? ?>> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 修改為 org.apache.catalina.startup.Bootstrap "$@" start \ 2>&1 | /usr/sbin/rotatelogs "$CATALINA_BASE"/logs/catalina-%Y%m%d.out 86400 480 & #為了與上方區(qū)分,這里日志的名字格式中,日期的年、月、日沒(méi)有使用“-”隔開(kāi) 在新 Tomcat7 的 bin/catalina.sh 中需要替換的行是 >> "$CATALINA_OUT" 2>&1 "&" 替換后該行的內(nèi)容與上面是一樣的 注:為什么 Tomcat7 后會(huì)有所不同,因?yàn)樵谒?catalina.sh 文件中有如下定義 CATALINA_OUT="$CATALINA_BASE" /logs/catalina.out 3.保存 catalina.sh 文件并重啟 Tomcat 即可 [root@localhost ~]# systemctl restart tomcat.service
查看日志分割結(jié)果:
[root@localhost ~]# ll -d /usr/local/tomcat/logs/catalina-20220610.out -rw-r--r-- 1 tomcat tomcat 105380 Jun 10 17:22 /usr/local/tomcat/logs/catalina-20220610.out #可以看到已經(jīng)存在(日志格式為了區(qū)分,其中日期的年、月、日沒(méi)有使用“-”隔開(kāi),上方有提及)
3、方法三:使用腳本
Linux環(huán)境下切割日志腳本
將此腳本放到 tomcat 下的 bin 目錄,在 crontab中自動(dòng)執(zhí)行,shell腳本如下: #!/bin/bash cd `dirname $0` d=`date +%Y-%m-%d` d7=`date -d'7 day ago' +%Y-%m-%d' cd ../logs/ cp catalina.out catalina.out.$ublnpf9mb echo "" > catalina.out rm -rf catalina.out.${d7}
這里就不進(jìn)行演示了,如果需要自行測(cè)試
到此這篇關(guān)于Tomcat日志自動(dòng)分割的三種方法的文章就介紹到這了,更多相關(guān)Tomcat日志自動(dòng)分割內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Tomcat部署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-12解決Tomcat?Caused?by:?java.lang.ClassNotFoundException:?ja
這篇文章主要給大家介紹了如何解決Tomcat?Caused?by:?java.lang.ClassNotFoundException:?java.util.logging.Logger的問(wèn)題,文中有詳細(xì)的原因分析及解決方法,需要的朋友可以參考下2023-10-10配置tomcat內(nèi)存大小全過(guò)程(windows、linux)
本文詳細(xì)介紹了Java虛擬機(jī)(JVM)內(nèi)存參數(shù)的設(shè)置方法,包括初始堆內(nèi)存(-Xms)和最大堆內(nèi)存(-Xmx),以及非堆內(nèi)存(PermSize和MaxPermSize)的配置,同時(shí),提供了在Windows和Linux服務(wù)器上配置JVM內(nèi)存的具體步驟,并介紹了如何查看配置是否生效以及解決配置無(wú)效的問(wèn)題2024-11-11阿里云服務(wù)器Tomcat無(wú)法訪問(wèn)的問(wèn)題
這篇文章主要介紹了阿里云服務(wù)器Tomcat無(wú)法訪問(wèn)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11如何解決Tomcat啟動(dòng)后中文亂碼問(wèn)題
這篇文章主要介紹了如何解決Tomcat啟動(dòng)后中文亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Eclipse添加新server時(shí)無(wú)法選擇Tomcat7的解決方法
有朋友會(huì)遇到在New Server對(duì)話框中選擇了Tomcat 6/7后卻無(wú)法單擊“Next”按鈕的問(wèn)題,接下來(lái)通過(guò)本文給大家分享Eclipse添加新server時(shí)無(wú)法選擇Tomcat7的解決方法,需要的朋友參考下2017-01-01Unable?to?start?embedded?Tomcat?Nacos啟動(dòng)報(bào)錯(cuò)的解決方案
Windows?本地啟動(dòng)?Nacos(2.2.0)?服務(wù),控制臺(tái)報(bào)錯(cuò)?Unable?to?start?embedded?Tomcat,報(bào)錯(cuò)信息:Unable?to?start?embedded?Tomcat,無(wú)法加載內(nèi)置的tomcat,本文介紹了Unable?to?start?embedded?Tomcat?Nacos啟動(dòng)報(bào)錯(cuò)解決方案,需要的朋友可以參考下2024-08-08Tomcat部署項(xiàng)目的幾種常見(jiàn)方式[親測(cè)]
這篇文章主要介紹了Tomcat部署項(xiàng)目的幾種常見(jiàn)方式,文中給大家提到了三種方法,除此之外還有Tomcat熱部署的方式 ,感興趣的朋友跟隨小編一起看看吧2018-11-11