如果问题太琐碎,请原谅。我对 log4j 完全陌生。我看到有两个标签和标签,它们引用了各种appender。假设我想将我的代码库中的信息记录在一个文件中,将其发送到我的电子邮件并打印到控制台。我希望将级别设置为信息。拥有一个引用三个附加程序的标签还不够吗?(文件、电子邮件和控制台)为什么我们需要另一个相同的标签?
问问题
53794 次
1 回答
45
就够了。
在 log4j 中,记录器与包相关联,有时与特定类相关联。记录器的包/类由属性“名称”定义。记录器在其包以及所有子包及其类中记录消息。唯一的例外是记录应用程序中所有类的消息的根记录器。
记录器也具有级别,并且可能附加一个或多个附加程序(记录目标)。
在下一个示例中,我们有两个记录器:
- 根记录器,将所有包中级别为 INFO 或更高级别的消息记录到各个目的地:控制台、电子邮件和文件,
- “com.foo”记录器,将包“com.foo”及其子包中的WARN级别或更高级别的消息记录到另一个文件中。
<log4j:configuration>
<!-- Declaration of appenders FILE, MAIL, CONSOLE and ANOTHERFILE -->
...
<!-- -->
<logger name="com.foo">
<level value="warn"/>
<appender-ref ref="ANOTHERFILE" />
</logger>
<root>
<priority value ="info" />
<appender-ref ref="FILE" />
<appender-ref ref="MAIL" />
<appender-ref ref="CONSOLE" />
</root>
</log4j:configuration>
您应该阅读有关 log4j 基础的更多信息。
于 2012-10-14T12:08:28.463 回答