SLF4JのLogger
APIを拡張し、AppLogger
インターフェイスを作成しました。私がここで開示することができない特定の必要性のためにこれを行わなければなりません。ここでは、この拡張ロガーをLogBackフレームワークで使用したいと考えています。私はそれを動作させる方法を見つけることができません。直接の使用はClassCastException
を投げています(これは、名前がLogger
で、AppLogger
のクラスを予期しているため、明らかです)。拡張SLF4Jをログバックで使用する方法
ブリッジ実装を作成し、カスタムのStaticBinder
クラスを提供することで、この拡張インタフェースをLog4J 1.x
とLog4J 2.x
で動作させることができました。 LogBackの場合、このブリッジクラス(StaticBinder
)はlogback-classic
JARファイルの一部なので、自分のバインダとLogBackの作成方法はわかりません。
AppLogger
インタフェースは次のようになります。誰もが任意のアイデアを提供する場合
public interface AppLogger extends org.slf4j.Logger {
public void myOwnMethod(String message, Object... args);
}
は感謝しています。
@ Raedwald、私は自分の質問を編集して拡張インターフェースを追加しました。アプリケーション固有のロギング方法をいくつか追加する必要があります。私はまた、LogBackを拡張するというあなたの点を理解しています。私は、 'AppLogger'を拡張する' ch.qos.logback.classic.Logger'と同等の実装を提供しなければならないことを知っていますが、その場合、 'logback-classic'にあるすべてのクラスのコードを提供しなければなりませんJAR。私は他の考えを考えることができません。あなたは別の考えを持っていることを親切にお勧めします。 – Niranjan
マーカやMDCなどの組み込みメカニズムでは不可能なことを行うために、Loggerのコアインタフェースを拡張する必要があるのはなぜか想像できません。おそらく、Loggerインターフェースを採用せず、すべてのクラスを静的にインポートする独自のメソッドを提供する方が良いでしょう。 –