12.2. LogEIP


概要

Apache Camel では、ルートでログを出力する方法は複数あります。

  • log DSL コマンドの使用。
  • メッセージコンテンツをログに記録できる Log コンポーネントの使用。
  • メッセージフローを追跡するトレーサーの使用。
  • Processor または Bean エンドポイントを使用した Java でのロギング。
log DSL コマンドと log コンポーネントの違い

log DSL は非常に軽量で、Starting to do …​ のように人の作業をロギングします。これは、Simple 言語に基づいたメッセージのみにログを記録できます。対照的に、Log コンポーネントは、フル機能のロギングコンポーネントです。Log コンポーネントはメッセージ自体をログに記録でき、ロギングを制御する多くの URI オプションがあります。

Java DSL の例

Apache Camel 2.2 以降、log DSL コマンドを使用して、Simple 式言語を使ってランタイム時にログメッセージを作成できます。たとえば、以下のように、ルート内にログメッセージを作成できます。

from("direct:start").log("Processing ${id}").to("bean:foo");

このルートは、ランタイムに String フォーマットメッセージを作成します。ルート ID をログ名として使用し、ログメッセージは INFO レベルでログに記録されます。デフォルトでは、ルートには route-1route-2 などの連続した名前が付けられます。ただし、DSL コマンド routeId("myCoolRoute") を使用して、カスタムルート ID を指定することもできます。

ログ DSL は、ロギングレベルとログ名を明示的に設定できるようにするバリアントも提供します。たとえば、ロギングレベルを明示的に LoggingLevel.DEBUG に設定するには、以下のようにログ DSL を呼び出すことができます。

ログ DSL には、ロギングレベルや名前を設定するためのオーバーロードされたメソッドもあります。

from("direct:start").log(LoggingLevel.DEBUG, "Processing ${id}").to("bean:foo");

ログ名を fileRoute に設定するには、以下のようにログ DSL を呼び出すことができます。

from("file://target/files").log(LoggingLevel.DEBUG, "fileRoute", "Processing file ${file:name}").to("bean:foo");

XML DSL の例

XML DSL では、ログ DSL は log 要素によって表され、ログメッセージは以下のように message 属性を Simple 式に設定することで指定されます。

<route id="foo">
    <from uri="direct:foo"/>
    <log message="Got ${body}"/>
    <to uri="mock:foo"/>
</route>

log 要素は、messageloggingLevel、および logName 属性をサポートします。以下に例を示します。

<route id="baz">
    <from uri="direct:baz"/>
    <log message="Me Got ${body}" loggingLevel="FATAL" logName="cool"/>
    <to uri="mock:baz"/>
</route>

グローバルログ名

ルート ID はデフォルトのログ名として使用されます。Apache Camel 2.17 以降、logname パラメーターを設定してログ名を変更できます。

Java DSL では、以下の例のようにログ名を設定します。

CamelContext context = ...
context.getProperties().put(Exchange.LOG_EIP_NAME, "com.foo.myapp");

XML では、以下のようにログ名を設定します。

<camelContext ...>
  <properties>
    <property key="CamelLogEipName" value="com.foo.myapp"/>
  </properties>

複数のログがあり、すべてのログに同じログ名を設定する場合は、各ログに設定を追加する必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.