Log4J Logger クラスを拡張し、ログを記録するかどうかを決定するカスタム Logger クラスを作成しました。
私のパターン レイアウトには、ログが実行された場所からのクラス名とメソッド名を表示する%F
およびパラメータがあります。%M
問題は、例外の呼び出し元のクラスとメソッド名を表示する代わりに、カスタム ロガーのクラスとメソッド名を表示することです!
正しい情報を表示するにはどうすればよいですか?
メソッドの完全修飾クラス名としてクラスを指定する必要がありますforcedLog()
。
private static final String FQCN = MyCustomLogger.class.getName();
...
public void info(Object message) {
if(repository.isDisabled(Level.INFO_INT))
return;
if(Level.INFO.isGreaterOrEqual(this.getEffectiveLevel()))
forcedLog(FQCN, Level.INFO, message, null);
}
....
何を除外しようとしているのかはわかりませんが、ロガーを拡張するよりもフィルターを使用する方がよい場合があります。