log4j对象改变日志级别可批量的改变所有级别,或是根据条件改变日志级别。

log4j配置文件:

log4j.rootLogger=ERROR,FILE,CONSOLE,EXECPTION

#log4j.appender.FILE=org.apache.log4j.RollingFileAppenderlog4j.appender.FILE=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.FILE.File=${catalina.home}/logs/boss.loglog4j.appender.CONSOLE.Threshold=DEBUGlog4j.appender.FILE.Encoding=utf-8#log4j.appender.FILE.MaxFileSize=10MB#log4j.appender.FILE.MaxBackupIndex=100log4j.appender.FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.FILE.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%t][%l][%p]: %m%n

log4j.appender.EXECPTION=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.EXECPTION.File=${catalina.home}/logs/error.loglog4j.appender.EXECPTION.Threshold=ERRORlog4j.appender.EXECPTION.Encoding=utf-8#log4j.appender.EXECPTION.MaxFileSize=10MB#log4j.appender.EXECPTION.MaxBackupIndex=100log4j.appender.EXECPTION.layout=org.apache.log4j.PatternLayoutlog4j.appender.EXECPTION.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%t][%l][%p]: %m%n

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Target=System.outlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=[%d{HH:mm:ss,SSS}][%-5p][%t][%M] (%F:%L) - %m%n

log4j.appender.Requests=org.apache.log4j.RollingFileAppenderlog4j.appender.Requests.File=${catalina.home}/logs/jotm.loglog4j.appender.Requests.MaxFileSize=100MBlog4j.appender.Requests.MaxBackupIndex=5log4j.appender.Requests.Encoding=utf-8log4j.appender.Requests.layout=org.apache.log4j.PatternLayoutlog4j.appender.Requests.layout.ConversionPattern=%10r [%-5c{1}] %7p - %C{1}.%M(%L) : %m\n

#c3p0log4j.logger.com.mchange.v2=ERRORlog4j.logger.com.opensymphony=ERRORlog4j.logger.org.apache=ERRORlog4j.logger.org.springframework=ERRORlog4j.logger.freemarker.cache=ERROR

#SqlMap logging configuration...#DEBUG < INFO < WARN < ERROR < FATAL#log4j.logger.com.miri.boss=DEBUG

log4j.logger.com.ibatis=ERRORlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=ERRORlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=ERRORlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=ERROR

#log4j.logger.java.sql=INFOlog4j.logger.java.sql.Statement=ERRORlog4j.logger.java.sql.ResultSet=ERRORlog4j.logger.java.sql.PreparedStatement=ERROR

#jsonlog4j.org.apache.struts2=ERRORlog4j.logger.org.apache.struts2.json=ERROR

#ecsidelog4j.logger.org.ecside.core.TableModelUtils=ERROR

# JOTM #log4j.logger.org.objectweb.jotm=ERROR, Requestslog4j.additivity.org.objectweb.jotm=false

log4j.logger.org.objectweb.jotm.jta=ERROR, Requestslog4j.additivity.org.objectweb.jotm.jta=false

log4j.logger.org.objectweb.jotm.recovery=ERROR, Requestslog4j.additivity.org.objectweb.jotm.recovery=false

log4j.logger.org.objectweb.jotm.tests=ERROR, Requestslog4j.additivity.org.objectweb.jotm.tests=false

# CAROL #log4j.logger.org.objectweb.carol=ERROR, Requestslog4j.additivity.org.objectweb.carol=false

log4j.logger.org.objectweb.carol.rmi=ERROR, Requestslog4j.additivity.org.objectweb.carol.rmi=false

log4j.logger.org.objectweb.carol.jndi=ERROR, Requestslog4j.additivity.org.objectweb.carol.jndi=false

1、批量的改变所有日志对象的日志级别:

//value日志级别eroor、info、debug等public void test(String value){final String sArg = LogManager.getRootLogger().getLevel().toString();                    if (!sArg.equals(value))                  {//设置日志级别                       final Level level = Level.toLevel(value);//设置根日志级别                     LogManager.getRootLogger().setLevel(level);

//获取配置文件中的所有log4j对象                        final Enumeration<org.apache.log4j.Logger> logs = LogManager.getCurrentLoggers();                      while (logs.hasMoreElements())                        {                         final org.apache.log4j.Logger logger = logs.nextElement();//给log4j对象设置级别                           logger.setLevel(level);                       }                 }}

2、根据log4j对象的名称改变日志级别,名称将会和配置文件中的名称匹配,匹配上的对象设置日志级别。

//value日志级别eroor、info、debug等public void test(String value){

final String sArg = LogManager.getRootLogger().getLevel().toString();                  if (!sArg.equals(value))                  {                     final Level level = Level.toLevel(value);                        LogManager.getRootLogger().setLevel(level);                       final Enumeration<org.apache.log4j.Logger> logs = LogManager.getCurrentLoggers();                      while (logs.hasMoreElements())                        {                         final org.apache.log4j.Logger logger = logs.nextElement();                           final String loggerName = logger.getName();                          // 匹配调整部分logger                           if (loggerName.contains("java.sql") || loggerName.contains("com.miri.boss")                                   || loggerName.contains("com.ibatis"))                           {                             logger.setLevel(level);                           }                     }                 }}

上面的匹配条件将会匹配到日志配置文件中的:

log4j.logger.com.miri.boss=DEBUG

log4j.logger.com.ibatis=ERRORlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=ERRORlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=ERRORlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=ERROR

#log4j.logger.java.sql=INFOlog4j.logger.java.sql.Statement=ERRORlog4j.logger.java.sql.ResultSet=ERRORlog4j.logger.java.sql.PreparedStatement=ERROR

log4j对象改变日志级别相关推荐

  1. Spring Boot log4j多环境日志级别的控制

    之前介绍了在<Spring boot中使用log4j>,仅通过log4j.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需要采用D ...

  2. glog 设置日志级别_如何动态改变日志级别

    前言 关于日志级别,大部分项目可能都设置为info级别,当然也可能有一些追求性能或者说包含很多敏感信息的项目直接将级别设置为warn或者error:这时候如果项目中出现一些未知异常,需要用到很详细的日 ...

  3. 如何动态改变日志级别

    前言 关于日志级别,大部分项目可能都设置为info级别,当然也可能有一些追求性能或者说包含很多敏感信息的项目直接将级别设置为warn或者error:这时候如果项目中出现一些未知异常,需要用到很详细的日 ...

  4. Spring Boot中对log4j进行多环境不同日志级别的控制

    之前介绍了在<Spring boot中使用log4j记录日志>,仅通过log4j.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需 ...

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

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

  6. 求你了,别再随便打日志了,教你动态修改日志级别!

    GitHub 19k Star 的Java工程师成神之路,不来了解一下吗! 之前写过一篇文章<明明有自动清理,日志还是把我的服务干爆了!>,介绍过一次大促故障,是因为日志量激增,导致服务器 ...

  7. log4j2 自定义日志级别

    log4j内置日志级别 注意 : intLevel 值越小,级别越高 (log4j2 官方文档) 自定义日志级别 第一步 :声明自定义级别 intLevel参考上面的值 <CustomLevel ...

  8. Robotframework中的日志级别

    日志级别 可用的日志级别 Robot Framework中日志文件中的消息可以有不同的日志级别. 这些消息有些是Robot Framework自己写入, 有的是被执行的关键字打印的不同的级别日志消息. ...

  9. springboot动态调整日志级别

    1.springboot使用log4j2 springboot使用的common-logging,底层兼容各种日志框架如,log4j2,slf4,logback等,默认底层使用的是logback,我们 ...

最新文章

  1. 1011 World Cup Betting (20 分)_14行代码AC
  2. 你是否做好了代码的备份?
  3. 玩转oracle 11g(16):命令学习4
  4. 为什么TypedReference在幕后
  5. C++中lock_guard的学习
  6. 用java写四则混合运算,JAVA写的四则混合运算-JSP教程,Java技巧及代码
  7. 钟点计算机,汇编语言 钟点显示
  8. Faster-RCNN.Pytorch的使用
  9. 极域电子教室超级管理员密码
  10. Maven之(五)Maven仓库
  11. Java 上机----实训操作6---汽车类
  12. big O notation - 大 O 表示法
  13. 7能进安全模式但正常启动黑屏_铅锤哥:十五种电脑开机黑屏的原因与解决思路...
  14. 关于网络渗透的过程以及感想记录
  15. 资深营销团队管理专家——文彬
  16. 阿里,百度高级程序员力荐2019必看书单—附PDF电子档
  17. Excel:批量将某字符替换为“换行符”
  18. 华为机试真题 C 实现【非严格递增连续数字序列】【2022 Q4新题】
  19. 如何转换图片格式?教你三招一键轻松转换图片格式
  20. 【CC】| 创建三维模型教程

热门文章

  1. Windows MySQL8.0免安装版(实操配置以及多个mysql实例时的踩坑经验)
  2. Unity VR 开发教程: Meta Quest 一体机开发 (一) 环境配置(基于 Oculus Integration v46)
  3. 格创同城跑腿v1.3.9
  4. C语言—函数_成仙不问道
  5. DAX: DIVIDE函数 vs 除法操作符
  6. IC验证培训——SystemVerilog与UVM,IC验证线上培训九月澎湃将至
  7. 基于51单片机的多功能视力保护台灯
  8. ifeve.com :并发编程网站推荐
  9. \t\t电力光纤到户让家庭享受更高品质通信服务
  10. 使用 Pipcook 识别图片中的前端组件