更改日志级别

运行时中更改日志记录级别非常重要,这主要在生产环境中非常重要,在生产环境中,您可能希望在有限的时间内进行调试日志记录。

好了,更改记录器非常简单–假设您有一个具有所需记录级别的输入参数,只需获取根记录器并通过输入记录级别进行设置,例如:

Logger root = Logger.getRootLogger();//setting the logging level according to input
if ('FATAL'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.FATAL);
}else if ('ERROR'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.ERROR);
}

但是,常见的情况是我们按类维护日志实例 ,例如:

class SomeClass{//class level logger
static Logger logger - Logger.getLogger(SomeClass.class);
}

仅设置根记录器是不够的,因为类记录器不会受到影响。

诀窍是记住让所有记录器都进入系统并更改其记录级别。
例如:

Logger root = Logger.getRootLogger();
Enumeration allLoggers = root.getLoggerRepository().getCurrentCategories();//set logging level of root and all logging instances in the system
if ('FATAL'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.FATAL);while (allLoggers.hasMoreElements()){Category tmpLogger = (Category) allLoggers.nextElement();tmpLogger .setLevel(Level.FATALLogging, Enterprise Java, Log4j);}
}else if ('ERROR'.equalsIgnoreCase(logLevel)) {root.setLevel(Level.ERROR);while (allLoggers.hasMoreElements()){Category tmpLogger = (Category) allLoggers.nextElement();tmpLogger .setLevel(Level.ERROR);}
}

因此,只需将其包装在服务类中,然后使用动态logLevel String参数从控制器中调用它即可,该参数代表您希望将系统设置为的日志记录级别。

如果您需要完整的解决方案,请告诉我。

基本方法是在此链接中 。

参考: 如何在我们的JCG合作伙伴 Gal Levinsky的博客 Blog 上更改运行时的日志记录级别 。

翻译自: https://www.javacodegeeks.com/2012/07/how-to-change-logging-level-in-runtime.html

更改日志级别

更改日志级别_如何在运行时更改日志记录级别相关推荐

  1. 如何在运行时更改日志记录级别

    在运行时中更改日志记录级别很重要,这主要在生产环境中非常重要,在生产环境中,您可能希望在有限的时间内进行调试日志记录. 好了,更改根记录器非常简单–假设您有一个具有所需记录级别的输入参数,只需获取根记 ...

  2. Spring Boot –使用执行器端点在运行时配置日志级别

    从Spring Boot 1.5开始,新的loggers器执行器端点允许在运行时查看和更改应用程序记录级别. 将spring-boot-actuator添加到您的项目 <dependency&g ...

  3. go 获取内核个数_图解Go运行时调度器

    多goroutines形式的Go并发是编写现代并发软件的一种非常方便的方法,但是您的Go程序是如何高效地运行这些goroutines的呢? 在这篇文章中,我们将深入Go运行时底层,从设计角度了解Go运 ...

  4. UE4 在游戏运行时更改变量 (通过鼠标滑轮来更改第一人称角色的最大行走速度)

    在上一篇博客中(UE4 更改组件变量 (以修改第一人称角色模板的最大行走速度和跳跃高度为例))已经创建了最大行走速度这个变量,如何在游戏运行时修改它从而达到动态调整速度的效果? 效果: 步骤: 1.创 ...

  5. python怎么设置函数超时时间_在python运行时为函数设置超时秒数

    我遵循this解.在 我试图为我的函数during runtime设置超时秒数,这使我能够灵活地传递不同的timeout seconds,甚至不打开脚本(测试.py)在 在超时.py在from fun ...

  6. 如何获取注解中的值_如何在运行时利用注解信息

    注解( annontation )是 Java 1.5 之后引入的一个为程序添加元数据的功能.注解本身并不是魔法,只是在代码里添加了描述代码自身的信息,至于如何理解和使用这些信息,则需要专门的解析代码 ...

  7. 线程基础知识_Synchronized_ThreadAPI_自定义锁_获取线程运行时异常

    Synchronized synchronized包含monitor enter, monitor exit 2个JVM指令(遵循happens-before原则), 执行monitor exit之前 ...

  8. 查看java运行时参数_查看JVM运行时参数

    1.查看JVM运行时参数 -XX:+PrintFlagsInitial -XX:PrintFlagsFinal -XX:+UnlockExperimentalVMOptions 解锁实验参数 -XX: ...

  9. python清理日志脚本_Python日志:如果在程序运行时删除了日志文件,则创建新的日志文件(RotatingFileHandler)...

    我有一个python程序在运行,它使用timedrotingfilehandler连续记录到一个文件.有时我想在不关闭程序的情况下获取日志文件,所以我只需将日志文件剪切并粘贴到不同的位置.在 程序不会 ...

最新文章

  1. 增加ActiveDirectory证书服务器有效期与续订步骤
  2. 浅谈 Request Response
  3. MySQL高级配置(二)详细介绍
  4. 想拿下互联网大厂OFFER,都需要准备什么?
  5. 【本质】你知道C语言编译的过程吗?
  6. Almost Union-Find UVA - 11987(并查集的删除操作)
  7. 人生中一定要坚守的格言
  8. Android Studio实现 历史上的今天
  9. 一.微信公众号迁移流程 openid转换
  10. c语言中的 #ifndef/#define/#endif的作用
  11. 修改系统默认 alert 弹框样式
  12. 劳动仲裁解除劳动关系要多长时间
  13. 56.com flash http://www.56.com/deux4_97177389.swf
  14. 计算机学院的学生起个昵称,查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是(..._考试资料网...
  15. python小技巧:一步步教你用Python实现
  16. php北京平均工资,2016年北京平均工资是多少?
  17. 互联网晚报 | 10月17日 星期日 | 锤子论坛宣布下线;《长津湖》跻身中国影史票房前四;华为云专属月·行业深耕专项行动开启...
  18. 技术评审到底需要评审哪些东西
  19. 服务器的ftp数据库信息,如何查看ftp服务器数据库
  20. armadillo库安装教程

热门文章

  1. JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)
  2. 【Python】Conda的安装
  3. python爬虫进阶(初始)
  4. Springboot中进行日志打印需要的信息
  5. 2020蓝桥杯省赛---java---B---9(子串分值和)
  6. Android隐藏状态栏和标题栏
  7. Mybatis中properties标签的使用
  8. go编译库给c语言函数返回值,go语言 函数return值的几种情况
  9. java异常了还会往下走吗_异常一个问题,请帮下忙:处理异常后,程序会继续往下运行吗...
  10. arm芯片厂家排名_国产芯片目前至少有10种,其中有3种,达到了世界顶尖水平