2

独自のログバックロギング構成で jar ファイルを配信したいと考えています。logback を構成する一般的な方法は、logback ライブラリがクラスパスのルートから読み取るデフォルトのファイル logback.xml を使用することです (アプリケーション サーバーで機能するかどうかに関係なく)。

メインのログバック構成ファイルから別のファイルを含めることもできますが(試していません)、どの jar がクラスパスに含まれ、どの jar がログ構成を必要とするかはわかりません。

さらに、jar は、コマンド ライン アプリケーションまたはアプリケーション サーバー (共有ライブラリかどうかに関係なく) で使用できます。

jarへのファイルパスを取得して、そこに構成ファイルがあるかどうかを確認し、プログラムで構成を読み取ってJoranConfiguratorでロードできるのではないかと思いました。

// This is the way I find to get the path to the jar
String path = ClassThatWantsALogger.class.getProtectionDomain().getCodeSource()
            .getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");// the path to the jar

ただし、このアプローチは、セキュリティの制限によっては失敗する可能性があり、Linux またはアプリケーション サーバーでは失敗する可能性があります。おそらくより良い解決策がある問題に対する難しいアプローチです。

どの環境でも機能する独自の logback 構成ファイルを jar が持つことができることを管理する方法を想像できますか?

4

1 に答える 1

2

私はあなたの質問に答えるために自分自身を引用します: ロギング構成は、クライアント アプリケーションの関心 (関心の分離) です。どこで、どのように、何をログに記録するかは、彼の決定です。あなたは私たちの図書館によってそれに何も課してはなりません。

于 2012-05-14T14:18:27.643 に答える