簡體   English   中英

如何從Log4j Logger / Appender中排除單個類?

[英]How to exclude a single Class from a Log4j Logger / Appender?

我有一個包“com.example”。 這個包有五個類。 我想將其中四個類記錄到一個文件中,但排除第五個類。

我可以編寫四個記錄器,例如logger name =“com.example.Class1”,並將相同的appender添加到所有四個記錄器。 有沒有更簡單的方法(讓我們認為我有100個而不是5個班級)?

還有其他一些像這樣的問題。 但其他人只想排除一個類來記錄這個類。 這可以使用addivity標志來解決。 但我認為可加性標志在這里不起作用,因為我不想記錄第五類,而是所有其他類?!

希望有人可以幫幫我嗎?

只需將第五個類配置為使用日志級別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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM