我对log4j完全不熟悉。我已经看到有两个标签和标签,它们指的是各种appender。 如其中一个链接所示 why do we need root and logger in log4j.xml “唯一的例外是根记录器,它记录了应用程序中所有类的消息。”我正在使用它(根记录器)。
就我而言,我必须将所有具有级别错误的异常记录到我的外部文件中。所以我用过
<!-- Root Logger -->
<root>
<priority value="error" />
<appender-ref ref="console" />
<appender-ref ref="FILE" />
</root>
但在我的日志文件中,我仍然可以看到信息记录器消息。 我只需要记录错误消息,所以请告诉我解决方案可能是什么, 如果我错了,我可以纠正它。
答案 0 :(得分:1)
这是来自log4j手册:
如果给定的记录器没有分配级别,那么它将继承一个级别 它最近的祖先与指定的水平。更正式地说:
级别继承给定记录器C的继承级别相等 到记录器层次结构中的第一个非空级别,从C和开始 在层次结构中朝向根记录器向上进行。
基本上,这意味着根记录器级别仅用于没有其他指定记录器级别的情况。
例如,您的xml文件中可能有其他记录器,例如Application Loggers和第三方记录器。这些将覆盖使用它们的任何类的根记录器级别(例如您的应用程序和spring框架)。如果您将所有记录器设置为错误,那么您应该看到错误。