目的:服务器运行时修改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'

测试代码下载链接

更改log4j日志级别而不重启服务器相关推荐

  1. java自定义日志级别_自定义log4j日志级别

    因为项目中需要输出一些特别的日志来做数据统计.如果开启log4j提供的INFO日志级别,每天生成的日志文件就会变得越来越大.这样就得写个定 时任务来删除这个文件.为了只输出所需的日志级别,唯有自己定义 ...

  2. Log4j日志级别及使用规范

    目录 1.日志存储 2.日志工具的选择 3.日志输出级别 4.Log4j配置 5.什么时候应该打日志 6.日志API规范 6.1.Log4j.slf4j对象的声明和初始化,仅以下代码是符合规范的 6. ...

  3. LOG4J日志级别详解

    日志记录器(Logger)是日志处理的核心组件. org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别. Level 描述 ALL 各级包括自定义级别 ...

  4. log4j 日志级别_log4j-Mybatis(5)

    什么是log4j? 就是 记录日志的工具,方便好用,格式多样化,对开发来说必不可少的利器. 1. LOG4J 1.1 log4j 简介 (a) log4j 是 Apache 提供的一款记录日志的工具 ...

  5. log4j 日志级别_Qt使用Log4Qt写日志

    Log4Qt 是Apache Log4J 的Qt移植版 官网 http://log4qt.sourceforge.net/ 首先初始化Log4Qt, 设置配置文件和消息绑定 Log4Qt::Prop ...

  6. log4j日志级别以及配置

    日志记录器(Logger)的行为是分等级的.分为 - OFF - FATAL - WARN - INFO - DEBUG - TRACE - ALL Log4j建议只使用四个级别,优先级从高到低分别是 ...

  7. idea控制台输出日志过多,修改log4j日志级别去掉没用的

    打开log4j.properties文件,找到log4j.rootLogger,改为log4j.rootLogger = INFO, Console ,File 参考文章:https://blog.c ...

  8. 实现Log4j和Logback的统一日志封装与动态日志级别调整

    一.背景 项目中使用日志的地方非常广泛, 如果要做统一的处理,比如调整格式, 增加信息打印, 要修改很多地方,难以维护,所以需要能够将日志做一个统一的封装, 便于扩展使用:同时想做到动态调整日志级别, ...

  9. java log4j基本配置及日志级别配置详解,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

最新文章

  1. android sqlite操作(2)
  2. Codeforces Round #355 (Div. 2) D. Vanya and Treasure dp+分块
  3. OO实现ALV TABLE 三:ALV的功能设计
  4. axis的对象交由spring管理的配置
  5. MySQL如何添加主键(PRIMARY KEY)
  6. java启动mysq服务_Java Web开发——MySQL数据库的安装与配置
  7. selenium 定位方式5
  8. 响应式下的雪碧图解决方案 - 活用background-size / background-position
  9. LayUI⑷:模板语法
  10. 数字电路基础:如何提高电路工作频率
  11. 嵌入式测试 模拟共享单车
  12. 5部靠身材和脸蛋撑起了整部电影,女主光环太刺眼,部部是经典!
  13. 了解函数式编程背后的属性:单子(Monad)
  14. 时间转换——CONVERT (VARCHAR,getdate(),23)
  15. mysql 处理emij表情_判断是否emij表情
  16. ARM工控主板在驾考驾培智能终端的使用
  17. 北京的春天——柳絮和沙尘在风中飞扬
  18. SAP ABAP ME23N标准采购订单打印输出配置开发
  19. 万能pdf转换器 V4.1
  20. VsCode 使用Latex最新教程

热门文章

  1. C语言机票销售系统[2023-01-04]
  2. 目前有哪些免费web应用防火墙(云oaf)适合企业和个人网站防护?
  3. AI芯片发展现状及前景分析
  4. 小程序、小视频,向左向右?
  5. jeeplus mysql_使用IDEA 打开jeeplus框架的项目
  6. 使用VirtualBox打开虚拟机报错:Raw-mode is unavailable courtesy of Hyper-V
  7. 虚拟机启动报错error: Raw-mode is unavailable courtesy of Hyper-V
  8. elementui 下拉框滚动条样式修改
  9. 【学习笔记 36】 buu [BJDCTF 2nd]假猪套天下第
  10. Macbook Pro 201 装Win10 声卡_世博会概念股联想小新Pro锐龙版的外观设计主打轻薄金属_国际股票...