1

我对 log4j 完全陌生。我看到有两个标签和标签,它们引用了各种appender。正如其中一个链接所建议的,即 为什么我们需要 root 和 log4j.xml 中的记录器 “唯一的例外是记录应用程序中所有类的消息的根记录器。” 我正在使用它(根记录器)。

就我而言,我必须将所有具有级别错误的异常记录到我的外部文件中。所以我用过

<!-- Root Logger -->
<root>
    <priority value="error" />
    <appender-ref ref="console" />
    <appender-ref ref="FILE" />
</root>

但在我的日志文件中,我仍然可以看到信息记录器消息。我只需要记录错误消息,所以请向我建议解决方案可能是什么,如果我错了,我可以纠正它。

4

1 回答 1

1

这来自 log4j 手册:

如果给定的记录器没有被分配一个级别,那么它会从其最近的祖先那里继承一个具有分配级别的记录器。更正式地说:

级别继承 给定记录器 C 的继承级别等于记录器层次结构中的第一个非空级别,从 C 开始,在层次结构中向上向根记录器前进。

基本上,这意味着根记录器级别将仅在没有其他指定记录器级别的情况下使用。

例如,您的 xml 文件中可能有其他记录器,例如应用程序记录器和 3rd 方记录器。这些将覆盖使用它们的任何类(例如您的应用程序和 spring 框架)的根记录器级别。如果您将所有记录器设置为错误,那么您应该看到的只是错误。

于 2013-08-21T16:41:47.330 回答