osgi
アプリケーションがありkaraf
、バンドルjar内にロギングプロパティを設定して、ソースのロギング構成を保持したいと考えています(現在はにありますkaraf/etc/org.ops4j.pax.logging.cfg
)
更新:実際、現在はKaraf CM管理サービスにログ構成を保持しています。リリースごとに、ログの小さな変更を行うために運用チームに特別な指示を書き込む必要があるため、問題があります。さらに、複数のカラフノード(〜10)があり、それぞれに対してこれらのアクションを繰り返すことは、複雑でエラーが発生しやすいタスクです。確かにCellar
、各karafノードにインストールすることはできますが、osgi envが複雑になり、サポートが必要になるため、ソースで構成を保持するための最も簡単な方法です。
私は、すべての依存関係(logback、slf4j、config)を内部に持ち、それらからエクスポートするだけで実際のロギングを行う別のバンドルを作成する最も簡単な方法をorg.slf4
グーグルで検索しました。
私はこれで試しましたpom.xml
:
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<unpackBundle>true</unpackBundle>
<instructions>
<Embed-Dependency>*;groupId=!junit|org.springframework|log4j|javax.jms|javax.mail</Embed-Dependency>
<Embed-Transitive>false</Embed-Transitive>
<Embed-Directory>target/dependency</Embed-Directory>
<Embed-StripGroup>true</Embed-StripGroup>
<Export-Package>org.slf4j</Export-Package>
<Import-Package>
*
</Import-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeGroupIds>junit,org.springframework,log4j</excludeGroupIds>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>com.springsource.ch.qos.logback.classic</artifactId>
<version>0.9.15</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>com.springsource.ch.qos.logback.core</artifactId>
<version>0.9.15</version>
</dependency>
しかし、それはマニフェストをバンドルするために、などのような多くの追加の依存関係を置きjavax.mail/jms
ます:
Import-Package: javax.jms,javax.mail,javax.mail.internet,javax.management,javax.naming,javax.servlet,javax.servlet.http,javax.sql,javax.xml.parsers,org.codehaus.janino,org.slf4j;version="1.6",org.xml.sax,org.xml.sax.helpers,sun.reflect
それらを解決するために、これらすべての不要なものをkarafにデプロイすることは良いアプローチではないことを確認してください。
何が問題になっていますか、またはすべてのロギング依存関係を内部に持つ単一のバンドルを構築する方法は?