溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

詳解關(guān)于tomcat切割catalina.out日志的三種方式

發(fā)布時(shí)間:2020-10-17 17:17:55 來(lái)源:腳本之家 閱讀:280 作者:woshiji594167 欄目:服務(wù)器

1.log4j進(jìn)行日志切分

1)準(zhǔn)備三個(gè)包:log4j-1.2.17.jar      tomcat-juli.jar      tomcat-juli-adapters.jar 放到tomcat的lib目錄或者是工程的WEB_INF/lib下,

2)在lib目錄下新建log4j.properties,加入以下內(nèi)容

log4j.rootLogger = INFO, CATALINA
 
# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
 INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
 INFO, HOST-MANAGER

3)再tomcat根目錄下,conf文件夾下,刪除或者重命名logging.properties文件。然后修改context.xml文件,在<Context> 標(biāo)簽修改為<Context  swallowOutput="true">,以接管tomcat的日志輸出。這樣,使用log4j進(jìn)行日志切分就完成了。

2、使用cronolog進(jìn)行切分日志

Cronolog是一個(gè)過濾器程序,它從標(biāo)準(zhǔn)輸入讀取日志文件條目,并將每個(gè)條目寫入由文件名模板和當(dāng)前日志所指定的輸出文件中。 當(dāng)擴(kuò)展文件名改變時(shí),關(guān)閉當(dāng)前文件,并打開一個(gè)新文件。 Cronolog是為了與Apache等Web服務(wù)器一起使用,將訪問日志分為每日或每月日志。

# wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz
# tar -zxf cronolog-1.6.2.tar.gz
# cd cronolog
# ./configure 
# make && make install
# which cronolog
# /usr/local/sbin/cronolog  

編輯tomcat下的bin/catalina.sh(注:行數(shù)不一定是我這個(gè),找到語(yǔ)句為主)

詳解關(guān)于tomcat切割catalina.out日志的三種方式

將以上兩處內(nèi)容替換為:

org.apache.catalina.startup.Bootstrap "$@" start \
2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

完成后,重新啟動(dòng)tomcat即可。

3、使用logrotate進(jìn)行切割。

在/etc/logrotate.d下,新建tomcatrotate,編輯tomatrotate,寫入如下內(nèi)容: 

/usr/local/tomcat7.0.79/logs/catalina.out {
daily
rotate 15
missingok
dateext
compress
notifempty
copytruncate
}

    daily                指定轉(zhuǎn)儲(chǔ)周期為每天
    rotate 15         指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0指沒有備份,5指保留5個(gè)備份
    missingok        如果日志不存在則忽略該警告信息
    dateext            文件后綴是日期格式,也就是切割后文件是:xxx.log-20150828.gz
    compress         通過gzip壓縮轉(zhuǎn)儲(chǔ)以后的日志(gzip -d xxx.gz解壓)
    notifempty       如果是空文件的話,不轉(zhuǎn)儲(chǔ)

copytruncate    用于還在打開中的日志文件,把當(dāng)前日志備份并截?cái)?/p>

/usr/local/tomcat7.0.79/logs/catalina.out   指定catalina.out的路徑

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

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

AI