2

特定の log4j ロガーにメッセージを送信するように Camel ルートを構成することは可能ですか? たとえば、次のロガーがあります。

<logger name="com.me.log.mylogger" additivity="false">
    <level value="debug" />
    <appender-ref ref="file_appender_messages" />
</logger>

file_appender_messagesはただのRollingFileAppender.

次に、Camel コンテキストで次を使用してログに記録しようとします。

<to uri="log:com.me.log.mylogger?level=INFO" />

ただし、で指定されたログ ファイルではなく、コマンド ラインに出力されますfile_appender_messages

25-Oct-2012 11:46:44 org.apache.camel.processor.CamelLogger log
INFO: [MESSAGE BODY]

さまざまなソースからのメッセージにさまざまなロガーを使用できるようにしたいと考えています。メッセージ プロセッサで実行することもできますが、理想的にはルート xml で構成できます。それはできますか?

4

2 に答える 2

2

キャメルはしばらくの間slf4jを使用しています。したがって、最初にlog4jをバックエンドとして使用するようにslf4jを構成する必要があります。Mavenで、次の依存関係を追加します。

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.6.1</version>
</dependency>
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.16</version>
</dependency>
于 2012-10-26T05:58:17.777 に答える
2

アプリケーション XML ファイルで Logger を Bean として定義することで、これを修正しました。

<bean id="myLogger" class="org.apache.log4j.Logger" factory-method="getLogger">
    <constructor-arg value="com.me.log.mylogger"/>
</bean>

次に、私のルートで、メッセージをログに記録したいときは、Bean の関連するメソッドに直接送信します

<to uri="bean:myLogger?method=info" />
于 2012-10-31T14:46:03.673 に答える