213.8. ログ出力の完全なカスタマイズ


Camel 2.11 から利用可能

#Formatting セクションで説明されているオプションを使用すると、ロガーの出力の大部分を制御できます。ただし、ログ行は常に次の構造に従います。

Copy to Clipboard Toggle word wrap
Exchange[Id:ID-machine-local-50656-1234567901234-1-2, ExchangePattern:InOut,
Properties:{CamelToEndpoint=log://org.apache.camel.component.log.TEST?showAll=true,
CamelCreatedTimestamp=Thu Mar 28 00:00:00 WET 2013},
Headers:{breadcrumbId=ID-machine-local-50656-1234567901234-1-1}, BodyType:String, Body:Hello World, Out: null]

この形式は、場合によっては不適切です。おそらく、必要があるためです…

  • …​ 出力されるヘッダーとプロパティーをフィルタリングして、インサイトと冗長性のバランスをとります。
  • …​ ログメッセージを最も読みやすいと思われるものに調整します。
  • …​ 例えばSplunk などのログマイニングシステムによる消化用にログメッセージを調整します。
  • …​ 特定のボディタイプを異なる方法で印刷します。
  • …など

完全なカスタマイズが必要な場合はいつでも、ExchangeFormatter インターフェイスを実装するクラスを作成できます。format(Exchange) メソッド内では、完全な Exchange にアクセスできるため、必要な正確な情報を選択して抽出し、カスタムの方法でフォーマットして返すことができます。戻り値が最終的なログメッセージになります。

次の 2 つの方法のいずれかで、Log コンポーネントにカスタム ExchangeFormatter を取得させることができます。

レジストリーで LogComponent を明示的にインスタンス化します。

Copy to Clipboard Toggle word wrap
<bean name="log" class="org.apache.camel.component.log.LogComponent">
   <property name="exchangeFormatter" ref="myCustomFormatter" />
</bean>

213.8.1. 設定より規約:*

logFormatter という名前の Bean を登録するだけです。ログコンポーネントは、それを自動的に取得するのに十分なほどインテリジェントです。

Copy to Clipboard Toggle word wrap
<bean name="logFormatter" class="com.xyz.MyCustomExchangeFormatter" />
注記

ExchangeFormatter、その Camel Context 内のすべての Log エンドポイント に適用されます。エンドポイントごとに異なる ExchangeFormatters が必要な場合は、必要な回数だけ LogComponent をインスタンス化し、関連する Bean 名をエンドポイント 接頭辞として使用します。

Camel 2.11.2/2.12 以降、カスタムログフォーマッタを使用する場合、カスタムログフォーマッタで設定されるログ URI にパラメーターを指定できます。ただし、その場合、logFormatter をスコープ付きのプロトタイプとして定義する必要があるため、異なるパラメーターがある場合は共有されません。たとえば、

Copy to Clipboard Toggle word wrap
<bean name="logFormatter" class="com.xyz.MyCustomExchangeFormatter" scope="prototype"/>

そして、さまざまなオプションでログ URI を使用して Camel ルートを作成できます。

Copy to Clipboard Toggle word wrap
<to uri="log:foo?param1=foo&amp;param2=100"/>

<to uri="log:bar?param1=bar&amp;param2=200"/>
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.