tomcat7 配置log4j 進行日誌分割
阿新 • • 發佈:2019-02-10
在tomcat的使用中,tomcat的日誌catalina.out會無限增加,通常一段時間不管就會到幾個G,當其太大後,會影響到tomcat的啟動,而分割日誌的方法有很多,這裡記錄一下利用log4j進行日誌分割的方法。
環境:
Centos7
JDK-1.8
Tomcat-7.0.79
1. 要使用log4j接管日誌,需要三個tomcat的jar包,如下L
log4j-1.2.17.jar
tomcat-juli.ja
tomcat-juli-adapters.jar
下載後,將這三個jar包,放到tomcat根目錄下的lib資料夾內。然後再將tomcat-juli.jar 複製一份到tomcat根目錄的bin目錄下,覆蓋原來的jar包。
2. 配置log4j的配置檔案,用來自定義日誌輸出。再tomcat根目錄的lib資料夾內新建log4j.properties 檔案,進行配置:
vim {tomcat-dir}/lib/log4j.properties
log4j.rootLogger=INFO, CATALINA # Define all the appenders log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender log4j.appender.CATALINA.File={tomcat-dir}/logs/catalina.out # 自定義日誌輸出目錄和檔案。 log4j.appender.CATALINA.Append=true log4j.appender.CATALINA.Encoding=UTF-8 # 這裡UTF-8後面不能有空格,下同 # Roll-over the log once per day log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd 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={tomcat-dir}/logs/localhost log4j.appender.LOCALHOST.Append=true log4j.appender.LOCALHOST.Encoding=UTF-8 log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd 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={tomcat-dir}/logs/manager log4j.appender.MANAGER.Append=true log4j.appender.MANAGER.Encoding=UTF-8 log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd 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={tomcat-dir}/logs/host-manager log4j.appender.HOST-MANAGER.Append=true log4j.appender.HOST-MANAGER.Encoding=UTF-8 log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-dd 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 # 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配置檔案
vim {tomcat-dir}/conf/context.xml
<Context swallowOutput="true"> # 將<Context>改為這樣,新增一個引數swallowOutput="true"
4. 如過指定的日誌輸出位置不是tomcat根目錄內的logs,則需要修改配置檔案,如果是則不用修改。
vim {tomcat-dir}/conf/server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> ## directory 改為你指定的日誌輸出目錄。
5. 刪除或更名原日誌配置檔案,這樣就讀取不到原日誌配置檔案。
mv {tomcat-dir}/conf/logging.properties {tomcat-dir}/conf/logging.properties.backup
OK,到此,日誌分割的配置完成,重啟tomcat,則會使用新的日誌配置檔案進行,日誌輸出。