メッセージログ

このポリシーは、実行の任意の時点で、カスタムメッセージと、ポリシー、プロキシ、バックエンド間で入手可能な情報を一緒にログに記録します。このポリシーは log4j と log4j2 のどちらでも機能します。

前提条件

Anypoint Platform 組織のシステム管理者ロールか、API を作成または管理するための権限が必要です。

ログポリシーのパラメータについて

メッセージログポリシーは、次の設定パラメータで構成されます。

メッセージログポリシー UI
パラメータ 説明

Message (メッセージ)

ログに記録するメッセージに変換される DataWeave 式。

注意: ペイロードがメッセージログの一部として使用される場合は、リスナを反復不可能と設定しないでください (デフォルトではこの設定はオフです)。

Conditional (条件付き)

true または false を返す DataWeave 式として表現される条件で、メッセージをログに記録するにはこの条件を満たす必要があります。この項目は省略可能です。

Category (カテゴリ)

ログのカテゴリ。このパラメータは省略可能です。カテゴリが設定されていない場合、デフォルト値は ​org.mule.runtime.logging.policy-<policy id>​ です。

Level (レベル)

log4j2 ファイルの条件に従ってメッセージがログに記録されるかどうかを定義します。

Before Calling API (API のコール前)

API がコールされる前にログポリシーを適用するように設定します。

After Calling API (API のコール後)

API がコールされた後にログポリシーを適用するように設定します。

ログ形式について

ログの形式は ​<date> <thread name> <level> <category>: <message>​ です。

カテゴリが org.mule でメッセージが #[payload] (ペイロード値が「the payload」) の場合は次のようになります。

2018-01-25 18:57:29,907 [WrapperListener_start_runner] INFO org.mule: the payload

ポリシーの実行について

ポリシーのログ記録は次の順序で実行されます。

  1. 要求が API に送信されます。

  2. 次の条件を満たす場合は、メッセージがログに記録されます。

    • ポリシーに定義されているログのレベルとカテゴリが、log4j2.xml 設定ファイルに定義されたロガーに含まれている。

    • ポリシーの [Conditional (条件付き)] 項目が設定されていないか、設定されている条件が満たされた。

  3. API 応答が返されます。メッセージログポリシーは、ポリシーやフローの実行に干渉しません。

  4. メッセージがアプリケーションログに表示されます。

ログの状態について

API フローをログに記録する前:

API フローをログに記録する前の状態

API フローをログに記録した後:

API フローをログに記録した後の状態

API フローの後のエラーハンドラ:

エラーハンドラ実行後の状態

ログポリシーの XML

次のフローはログポリシーの例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:http-policy="http://www.mulesoft.org/schema/mule/http-policy"
      xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
      http://www.mulesoft.org/schema/mule/core/current/mule.xsd
      http://www.mulesoft.org/schema/mule/http-policy
      http://www.mulesoft.org/schema/mule/http-policy/current/mule-http-policy.xsd">

<http-policy:proxy name="102280-message-logging">
  <http-policy:source>
   <try>
	<try>
	  <logger level="INFO" message="#[payload]"
	  category="org.mule.runtime.logging.policy-102280"/>
	    <error-handler>
	     <on-error-continue>
		<logger level="DEBUG" message="Before calling API turned into an error"
			category="org.mule.runtime.logging.policy-102280"/>
	     </on-error-continue>
	    </error-handler>
	</try>
        <http-policy:execute-next/>
          <error-handler>
	    <on-error-propagate logException="false">
	    </on-error-propagate>
          </error-handler>
  </try>
  </http-policy:source>
</http-policy:proxy>
</mule>

Was this article helpful?

💙 Thanks for your feedback!