コードを Jboss 5.1 から Jboss 7 に更新しようとしていますが、jboss-as-7.1 には独自のログ フレームワークがあることがわかりました。log4j よりも jboss 独自のロギング フレームワークを使用する場合の主な違いと利点を知りたいです。このフレームワークでアペンダーを使用する方法の例も必要です。
1 に答える
JBoss 7 のビルトイン ロギング モジュールはJava Util Loggingに基づいています。それを使用する主な (唯一の?) 理由は、それが既に統合されており、独自のソリューションを展開することを望むほど簡単ではないということです。JUL API を使用したくない場合は、提供されている SLF API を使用できます。
のようなインスタンス構成ファイルでアペンダーを構成できますstandalone.xml
。ロギング サブシステムの構成を探します。
<profile>
<subsystem xmlns="urn:jboss:domain:logging:1.1">
実際の構成例が付属しています。一般的に呼ばれるものは、またはのように構成でappender
タイトルが付けられていることに注意してください。*handler
console-handler
periodic-rotating-file-handler
ここでは、ロギング構成に関するアドバイスを見つけることができます。
編集:いくつかの明確化。
別の言い方をすれば、選択したフレームワークよりも組み込みの jboss ロギングを使用することを好む本当の理由はありません。唯一のことは、独自のフレームワークを構成するには追加の労力が必要であり、それでも失敗する可能性があることです (私は、logback を使用するように JBoss を構成する方法を理解するのに時間を費やしましたが、最終的にあきらめました)。したがって、log4j 実装を維持する方法を説明する資格はありません :)
「ネイティブ」JUL API または SLF4J ブリッジを介して jboss ロギングを使用できます。どちらも/modules
ディレクトリに含まれているため、実行時に追加のライブラリを含める必要はありません。Logger
コードで好みをリクエストするだけで、準備完了です。
SLF:LoggerFactory.getLogger(...);
7月:Logger.getLogger(...);
JUL から SLF に切り替えるために私がしなければならなかった唯一のことは、コードをコンパイルするための SLF API を提供することでした - ここに Maven の設定があります:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
<scope>provided</scope>
</dependency>