私はファイルのあるプロジェクトa-confを持っていsrc/main/resources/logback/conf/a/CommonAppenders.xmlます:
<included>
<appender name="FILE" class="FileAppender" />
</included>
a-runableまた、私は次をインポートするlogback.xmlconfigを持つ別のプロジェクトを持ってい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がありません。