パッケージ「com.example」があります。このパッケージには5つのクラスがあります。これらのクラスのうち4つをファイルに記録しますが、5番目のクラスは除外します。
4つのロガーを書くことができます。 logger name = "com.example.Class1"、および4つのロガーすべてに同じアペンダーを追加します。簡単な方法はありませんか(5つのクラスではなく100のクラスがあると考えてみましょう)?
このような他の質問がいくつかあります。しかし、他の人はこのクラスを記録するためにクラスを除外したかっただけです。これは、加法性フラグを使用して解決できます。しかし、5番目のクラスをログに記録したくないので、加算フラグはここでは機能しないと思います。
誰かが私を助けてくれることを願っていますか?
ログレベルOFFを使用するように5番目のクラスを構成するだけです。
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>