Log4j- Configuration 和 Level 的区别
Log4j- difference between Configuration and Level
有人可以解释一下 Log4j 的以下配置吗?
我对标签 Configuration = WARN 和 Root level="INFO" 感到特别困惑。
如果Configuration 意味着捕获WARN 消息,为什么Root 级别是INFO?
他们有什么关系?
代码段是否将附加程序控制台分配给 Root 记录器?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<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="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
status
属性配置 StatusLogger
的级别。这是一个特殊的记录器,位于记录器层次结构之外,它将 Log4j2 框架的内部事件记录到 System.err
.
它可能仅在您调试新的 Log4j2 配置时有用。
另一方面,<Root>
记录器的level
属性配置了所有记录器的默认级别。
Piotr 的回答是正确的。不过,为了更详细一点,Log4j 实际上有 Log4j API.
的多个实现
在 API 中是 SimpleLogger,它允许在不存在日志记录实现时进行最少的日志记录。它只允许通过系统属性进行最小配置。
API 中还有 StatusLogger。它还实现了 Log4j API。 Log4j 实现在内部使用 Log4j API 进行所有诊断日志记录。由于它必须记录其自身的启动和配置,因此它使用 StatusLogger 来执行此操作。这个实现有点类似于 SimpleLogger,因为它不是很容易配置。您几乎唯一可以控制的是它是记录到控制台还是文件。
如果您设置 status="OFF",那么即使您的配置一团糟,Log4j 也不会打印任何诊断信息。但是,即使那样您也可以在启动时指定 -Dlog4j2.debug=true 并且 Log4j 将发出调试日志。当配置出现问题时,这些非常有用。
有人可以解释一下 Log4j 的以下配置吗?
我对标签 Configuration = WARN 和 Root level="INFO" 感到特别困惑。
如果Configuration 意味着捕获WARN 消息,为什么Root 级别是INFO? 他们有什么关系?
代码段是否将附加程序控制台分配给 Root 记录器?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<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="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
status
属性配置 StatusLogger
的级别。这是一个特殊的记录器,位于记录器层次结构之外,它将 Log4j2 框架的内部事件记录到 System.err
.
它可能仅在您调试新的 Log4j2 配置时有用。
另一方面,<Root>
记录器的level
属性配置了所有记录器的默认级别。
Piotr 的回答是正确的。不过,为了更详细一点,Log4j 实际上有 Log4j API.
的多个实现在 API 中是 SimpleLogger,它允许在不存在日志记录实现时进行最少的日志记录。它只允许通过系统属性进行最小配置。
API 中还有 StatusLogger。它还实现了 Log4j API。 Log4j 实现在内部使用 Log4j API 进行所有诊断日志记录。由于它必须记录其自身的启动和配置,因此它使用 StatusLogger 来执行此操作。这个实现有点类似于 SimpleLogger,因为它不是很容易配置。您几乎唯一可以控制的是它是记录到控制台还是文件。
如果您设置 status="OFF",那么即使您的配置一团糟,Log4j 也不会打印任何诊断信息。但是,即使那样您也可以在启动时指定 -Dlog4j2.debug=true 并且 Log4j 将发出调试日志。当配置出现问题时,这些非常有用。