独自のログバックロギング構成で 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 が持つことができることを管理する方法を想像できますか?