0

私は自分のアプリケーションで使用SLF4jLogbackています。これで、自分のアプリケーションを他のアプリケーションに埋め込む必要があるという要件があります。これは、アプリケーションを他のアプリケーションのライブラリとして使用できることを意味します。ロガー部分を除いて、すべてが期待どおりに機能します。完全に無効にする方法がわかりませんLogback(これは、ユーザーが独自のロガー実装を持参する必要があるためです)。Logbackまた、「委任モード」のようなもので実行して他の実装をフックできるかどうかについても情報を見つけようとしましたSLF4jが、何も見つかりませんでした。

別のアプローチは、アプリケーションの起動時にログバックを取り除くカスタムクラスローダーを作成することですが、これは非常に複雑です(アプリケーションの実行中に、ロードされたクラスをクラスローダーから削除するハックなしでは不可能です)。

私のアプリケーションを異なるモジュールに分割せずにこれを行う可能性を誰かが見ていますか?

4

1 に答える 1

0

コンパイル時には、クラスパスに slf4j-api のみを含める必要があります。

実行時に、実行時クラスパスに logback を追加することを選択でき、slf4j はそれを使用します。

他のアプリケーションが log4j などを使用している場合、logback の代わりに slf4j-log4j と、slf4j-api およびモジュールを追加する必要があります。

java.util.logging を使用する場合、logback の代わりに slf4j-jdk14 を追加する必要があります。

どちらの場合も、log4j または java.util.logging 構成に追加できるように、使用するロギング カテゴリを伝えたい場合があります。

于 2012-10-02T15:06:53.140 に答える