35

我有一个包“com.example”。这个包有五个类。我想将其中四个类记录到一个文件中,但不包括第五个类。

我可以编写四个记录器,例如 logger name="com.example.Class1",并将相同的附加程序添加到所有四个记录器。有没有更简单的方法(让我们认为我有 100 个而不是 5 个类)?

还有一些类似的问题。但是其他人只是想排除一个类来记录这个类。这可以使用加法标志来解决。但我认为加法标志在这里不起作用,因为我不想记录第五节课,但所有其他节课?!

希望有人可以帮助我吗?

4

2 回答 2

38

只需将您的第五类配置为使用日志级别 OFF:

log4j.logger.com.example=INFO, MyAppender
log4j.logger.com.example.FifthClass=OFF

其实我建议你不要把它设置为OFF,而是FATALERROR甚至WARN相反。

想要忽略某个类的日志记录的主要原因通常是它的日志记录太多(超过有用并且难以阅读日志)。但是,大多数时候您仍然想知道是否真的出了问题。通过设置它,ERROR您仍然可以看到真正的问题案例,但不会被大量的INFO日志语句所困扰。

于 2011-03-11T07:22:23.790 回答
14

(只是为了完整的答案)

您也可以尝试通过设置 log4j.xml 文件来做到这一点。只需根据需要记录整个包并以不同的方式记录 FifthClass。

<logger name="com.example">
    <level value="INFO"/>
</logger>

<logger name="com.example.FifthClass">
    <level value="FATAL"/>
</logger>
于 2012-07-30T10:09:03.957 回答