tomcat7 配置log4j 进行日志分割

在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
  # 将改为这样,新增一个参数swallowOutput="true"


4. 如过指定的日志输出位置不是tomcat根目录内的logs,则需要修改配置文件,如果是则不用修改。

vim {tomcat-dir}/conf/server.xml
     ## directory 改为你指定的日志输出目录。


5. 删除或更名原日志配置文件,这样就读取不到原日志配置文件。

mv {tomcat-dir}/conf/logging.properties {tomcat-dir}/conf/logging.properties.backup 


OK,到此,日志分割的配置完成,重启tomcat,则会使用新的日志配置文件进行,日志输出。




你可能感兴趣的:(Centos7系列)