私はファイルのあるプロジェクトa-conf
を持っていsrc/main/resources/logback/conf/a/CommonAppenders.xml
ます:
<included>
<appender name="FILE" class="FileAppender" />
</included>
a-runable
また、私は次をインポートするlogback.xml
configを持つ別のプロジェクトを持っていCommonAppenders.xml
ます:
<configuration>
<!-- this is classpath import -->
<include resource="logback/conf/a/CommonAppenders.xml" />
...
</configuration>
a-runable
すべての依存関係(そのうちの1つ)が含まれているスタンドアロンのjarで、a-conf
またはOSGiバンドルとしてコンパイルできます。スタンドアロンアプリを実行すると、すべて問題ありません。ログファイルはで指定されたとおりに表示されますCommonAppenders.xml
。しかし、OSGiコンテナーを実行すると、ログファイルは作成されません。OSGiコンテナ内のすべてのバンドルには独自のクラスローダーがあるため、ログバックにはクラスパスからのリソースを含めることはできないと思います(ログバックClassLoader.getResource()
はファイルをインクルードするために使用します)。
チェックインExport-Package: logback.conf.a
しましたa-conf.jar/META-INF/MANIFEST.MF
(これはMavenバンドルプラグインによって実行されます)-問題ありません。効果なしで追加Import-Package: logback.conf.a
されましたa-runable
。
何ができるかわかりません(変更するコードはなく、構成だけです)。どんな助けでも大歓迎です。
PSここでも同様の問題が見つかりましたlogback.xml
が、すでにクラスパスにあり、独自のアペンダーは正常に機能します。FileNotFoundException
また、既存のログにsがありません。