繁体   English   中英

程序执行期间如何更改log4j2中的日志记录级别

[英]How to change the logging level in log4j2 during program execution

如果我错了,请纠正我,但是看来log4j2.xml必须在程序的类路径中,并且当您制作程序的独立可运行.jar文件时,类路径中的所有内容都打包到.jar文件中。

如果真是这样,那么在将程序导出到.jar文件之后,就无法再更改XML文件。 因此,似乎没有任何方法可以在不重新导出程序的情况下更改日志记录级别。

请告诉我我错了,有一种方法可以在程序运行时通过使用JFrame中的下拉列表来更改日志记录级别,以便用户可以选择日志记录级别。

我过去曾经用过

LogManager.getRootLogger().setLevel(Level.DEBUG);

您可以通过这种方式更改为任何日志级别。

您可以使用库中包含的Java管理扩展Bean(JMX Bean)来更改记录器级别:

  1. 在应用程序启动中启用JMX端口:

    -Dcom.sun.management.jmxremote.port = [port_num]

  2. 在执行应用程序时,请使用任何可用的JMX客户端(JVM在JAVA_HOME / bin / jconsole.exe中提供了一个)。

  3. 在JConsole中,查找“ org.apache.logging.log4j2.Loggers” bean

  4. 更改记录器的级别

我最喜欢的是,您无需修改​​代码或配置即可管理该代码或配置。 这一切都是外部的和透明的。

更多信息: http : //logging.apache.org/log4j/2.x/manual/jmx.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM