更改log4j日志级别而不重启服务器

本文介绍在服务器运行时如何修改log4j的日志输出级别,避免重启服务器,减少对线上环境的影响。内容包括添加相关依赖和log4j配置。

目的:服务器运行时修改log4j的输出级别后,不需要重启服务器。



        项目上线了后,我们生产环境一般设置的输出级别都是INFO,但是有些问题不一定能通过INFO信息找到。如何能做到 动态的修改日志的级别,而且不用重启服务,对线上环境的影响减少到最小呢?



首先POM中加上这些依赖:

  
  	<properties>
			<spring_version>3.2.2.RELEASE</spring_version>
	</properties>
  
  <dependencies>
  
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.6.2</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.2</version>
		</dependency>
		
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
		</dependency>
		
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.16</version>
		</dependency>
		
		<!-- spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring_version}</version>
		</dependency>
		
  </dependencies>

然后在项目的web.xml中加上:

  	
  
		
   
    log4jConfigLocation
   
		
   
    /WEB-INF/classes/log4j.properties
   
	
  
	
	
  
		
   
    log4jRefreshInterval
   
		
   
    6000
   
	
  
	
	
	
  
		
   
    org.springframework.web.util.Log4jConfigListener
		
   
	
  

log4jRefreshInterval  的作用是6000表示 开一条watchdog线程每6秒扫描一下配置文件的变化; 

最后附上log4j properties:

#log4j.rootLogger = [ level ] , appenderName, appenderName, ...
log4j.rootLogger = ERROR, console, dailyFile
#level=INFO,all can be output
#console is set to be a ConsoleAppender
log4j.appender.console = org.apache.log4j.ConsoleAppender
#console have four patterns
#org.apache.log4j.HTMLLayout
#org.apache.log4j.PatternLayout
#org.apache.log4j.SimpleLayout
#org.apache.log4j.TTCCLayout

log4j.appender.console.layout = org.apache.log4j.PatternLayout
#define the output type
log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#file is set to output to a extra file
log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
#the absolute route of the log4j file
#log4j.appender.dailyFile.File = /tmp/smarthome/base-web
log4j.appender.dailyFile.File = D:\\base-web.log
log4j.appender.dailyFile.Append=true
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout  
log4j.appender.dailyFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.dailyFile.Threshold=INFO
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd'.log'


测试代码下载链接


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值