我有一个包“com.example”。这个包有五个类。我想将其中四个类记录到一个文件中,但不包括第五个类。
我可以编写四个记录器,例如 logger name="com.example.Class1",并将相同的附加程序添加到所有四个记录器。有没有更简单的方法(让我们认为我有 100 个而不是 5 个类)?
还有一些类似的问题。但是其他人只是想排除一个类来记录这个类。这可以使用加法标志来解决。但我认为加法标志在这里不起作用,因为我不想记录第五节课,但所有其他节课?!
希望有人可以帮助我吗?
只需将您的第五类配置为使用日志级别 OFF:
log4j.logger.com.example=INFO, MyAppender
log4j.logger.com.example.FifthClass=OFF
其实我建议你不要把它设置为OFF,而是FATAL。ERROR甚至WARN相反。
想要忽略某个类的日志记录的主要原因通常是它的日志记录太多(超过有用并且难以阅读日志)。但是,大多数时候您仍然想知道是否真的出了问题。通过设置它,ERROR您仍然可以看到真正的问题案例,但不会被大量的INFO日志语句所困扰。
(只是为了完整的答案)
您也可以尝试通过设置 log4j.xml 文件来做到这一点。只需根据需要记录整个包并以不同的方式记录 FifthClass。
<logger name="com.example">
<level value="INFO"/>
</logger>
<logger name="com.example.FifthClass">
<level value="FATAL"/>
</logger>