Log4j2 配置中的“状态”是什么意思?

2022-08-31 11:33:12

我刚刚完成了log4j2.xml配置文件的调整,并发现了一些我并不真正理解的东西。那么什么是?<Configuration status="SOME_STATUS_HERE">

几乎在这里的所有例子中:http://logging.apache.org/log4j/2.x/manual/configuration.html 来自Apache的人将状态添加到配置中。

例如,这是第一个:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"> <!--status="WARN" - what is this???--> 
 
 <Appenders>
  <Console name="Console" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
  </Console>
 </Appenders>

 <Loggers>
  <Root level="error">
   <AppenderRef ref="Console"/>
  </Root>
 </Loggers>

</Configuration>

答案 1

状态记录器由 log4j2 组件在内部使用。配置中的设置(或“跟踪”)将导致将此内部日志记录输出到命令行。status="debug"

它将打印有关加载哪些log4j2插件组件的调试信息(所有配置元素都映射到log4j2插件),以及更多详细信息,例如发现了哪些附加器和记录器,它们具有哪些参数以及它们如何组合。

这对于解决配置问题非常有用。

在 Log4j 2.9 中,您可以使用系统属性(不需要任何值)来打开内部 Log4j2 状态日志记录,甚至在加载配置文件之前。在版本 2.9 之前,可以使用 系统属性 实现相同的操作。log4j2.debug-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE


答案 2

推荐