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

时间:2014-05-23 16:24:06

标签: java log4j2

如果我错了,请纠正我,但似乎log4j2.xml必须位于程序的类路径中,并且当您创建独立的runnable时,类路径中的所有内容都会打包成.jar文件。该程序的jar文件。

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

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

2 个答案:

答案 0 :(得分:0)

我以前用过这个

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

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

答案 1 :(得分:0)

您可以使用库中包含的Java Management Extensions 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. 更改记录器的级别

  5. 我最喜欢的是你不必修改代码或配置来管理它。这一切都是外在和透明的。

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