更改log4j日志级别而不重启服务器
2016-01-07 11:28
316 查看
目的:服务器运行时修改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.propertieslog4jRefreshInterval6000org.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'
测试代码下载链接
相关文章推荐
- Apache Log4j 2.0-rc1 发布
- log4j详细的常用配置说明介绍
- log4j的使用详细解析
- log4j.xml 配置不同的log到不同的文件
- Log4J输出至当前web路径
- Spring3 AOP配置异常。执行时间记录
- log4j.properties配置与加载应用
- 一个配置比较全的log4j.xml文件(一)
- Logstash 与Elasticsearch整合使用示例
- Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析
- Kafka+Log4j实现日志集中管理
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
- SpringAOP实现自动生成日志
- Log4j的ConversionPattern参数的格式含义
- Java日志那点儿事儿
- 使用高效的日志工具—Log4J
- Log4j 错误: java.lang.NoSuchFieldError: TRACE
- log4j日志配置
- Tomcat日志配置,可结合log4j
- log4j的使用方法