---
schema_version: "1"
id: 62bf4cb2a82f14d4cf39f37e517f24e3fc5581410ee648e45b4d0d7746163cc6
title: メッセージログポリシー
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/gateway/1.8/policies-included-message-logging.md
canonical_url: https://docs.mulesoft.com/jp/gateway/1.8/policies-included-message-logging
source_site: docs.mulesoft.com
content_type: documentation
content_hash: c355a7d18986b94b9177f1c1057cc39efa5260e92f5ae9f9df4da7be2e52ddaa
description: MuleSoft Documentation Site
release: "1.8"
latest: false
---
# メッセージログポリシー

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>ポリシー名</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">メッセージログ</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>概要</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">受信した要求からの情報、バックエンドからの応答、または同じ API エンドポイントに適用されている他のポリシーからの情報を使用してカスタムメッセージを記録する</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>カテゴリ</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">トラブルシューティング</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>使用可能な最小 Flex Gateway バージョン</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">v1.0.0</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-middle"><p class="tableblock"><strong>返される状況コード</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">このポリシーの戻りコードは存在しません</p></td>
</tr>
</tbody>
</table>

## [](#概要)概要

メッセージログポリシーは、受信した要求からの情報、バックエンドからの応答、または同じ API エンドポイントに適用されている他のポリシーからの情報を使用してカスタムメッセージを記録します。

## [](#前提条件)前提条件

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

## [](#ポリシーのパラメーターの設定)ポリシーのパラメーターの設定

### [](#flex-gateway-のローカルモード)Flex Gateway のローカルモード

ローカルモードでは、宣言型の設定ファイルを使用してメッセージログポリシーを API に適用します。以下のポリシー定義とパラメーターの表を参照してください。

\- policyRef:
    name: message-logging-flex
  config:
    loggingConfiguration: <array>
      - itemName: <string> // REQUIRED
        itemData: //REQUIRED
          message: <dataweave> // REQUIRED
          conditional: <dataweave> // OPTIONAL
          category: <string> // OPTIONAL
          level: <string> // REQUIRED
          firstSection: <bool> // OPTIONAL
          secondSection: <bool> // OPTIONAL

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">必須または省略可能</th>
<th class="tableblock halign-left valign-top">デフォルト値</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>設定の配列</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration.itemName</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>設定名。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration.itemData.message</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>メッセージログに解決される DataWeave 式。サポートされる DataWeave 式についての詳細は、​<a href="#dataweave-support">DataWeave 式のサポート</a>​を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration.itemData.conditional</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>メッセージをログに記録するかどうかに解決される DataWeave 式。サポートされる DataWeave 式についての詳細は、​<a href="#dataweave-support">DataWeave 式のサポート</a>​を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration.itemData.category</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>デフォルトカテゴリ</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>ログが実行されたパッケージとクラスを示すログメッセージプレフィックス。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration.itemData.level</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>記録するメッセージのレベル (​<code>INFO (情報)</code>​、​<code>WARN (警告)</code>​、​<code>ERROR</code>​ (エラー)、​<code>DEBUG (デバッグ)</code>​) を定義します。<br>
詳細は、​<a href="#severity-levels">メッセージログの重要度レベル</a>​を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration.itemData.firstSection</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>false</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このポリシーが適用される順序を考慮して、API エンドポイントがコールされる前にメッセージが記録されるかどうかを示す Boolean (ブール)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>loggingConfiguration.itemData.secondSection</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>false</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このポリシーが適用される順序を考慮して、API エンドポイントがコールされた後にメッセージを記録するかどうかを示す Boolean (ブール)。</p>
</div></div></td>
</tr>
</tbody>
</table>

#### [](#リソースの設定例)リソースの設定例

\- policyRef:
    name: message-logging-flex
  config:
    loggingConfiguration:
      - itemName: "Config 1"
        itemData:
          message: "#\[payload\]"
          conditional: "#\[attributes.queryParams\['QueryParam'\]=='someValue'\]"
          level: "ERROR"
          firstSection: true
      - itemName: "Config 2"
        itemData:
          message: "#\['literal string'\]"
          level: "WARN"
          secondSection: true
          firstSection: true

### [](#flex-gateway-の接続モード)Flex Gateway の接続モード

UI を使用してメッセージログポリシーを API に適用する場合は、以下のパラメーターを設定できます。

![メッセージログポリシー UI](/mulesoft/current/ja-jp/gateway/1.8/_images/apim-message-logging-policy-ui.png)

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">説明</th>
<th class="tableblock halign-left valign-top">必須?</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Message (メッセージ)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ログに記録するメッセージを抽出する DataWeave 式。サポートされる DataWeave 式についての詳細は、​<a href="#dataweave-support">DataWeave 式のサポート</a>​を参照してください。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">必須</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Conditional (条件付き)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">メッセージをログに記録するかどうかを指定する DataWeave ブール式。サポートされる DataWeave 式についての詳細は、​<a href="#dataweave-support">DataWeave 式のサポート</a>​を参照してください。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">省略可能</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Category (カテゴリ)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ログが実行されたパッケージとクラスを示すログメッセージのプレフィックス。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">省略可能</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Level (レベル)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">記録するメッセージのレベル (INFO (情報)、WARN (警告)、ERROR (エラー)、DEBUG (デバッグ))。<br>
詳細は、​<a href="#severity-levels">メッセージログの重要度レベル</a>​を参照してください。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">必須</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Before Calling API (API のコール前)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">このポリシーが適用される順序を考慮して、API エンドポイントがコールされる前にメッセージを記録するようにログポリシーを設定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">省略可能</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">After Calling API (API のコール後)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">このポリシーが適用される順序を考慮して、API エンドポイントがコールされた後にメッセージを記録するようにログポリシーを設定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">省略可能</p></td>
</tr>
</tbody>
</table>

#### [](#ui-から設定するメッセージログポリシーの例)UI から設定するメッセージログポリシーの例

メッセージログポリシーの使用方法をよく理解できるように、Les Vetments という架空の洋品小売業者を考えてみましょう。E コマースポータルを正常に運営するため、Les Vetments は Web サイト上で実行された要求の状況コードを監査する必要があります。

たとえば、顧客が商品を購入または返品したり、会社がカタログの商品を追加または削除したりした場合には、トランザクションを記録する必要があります。Les Vetments の IT マネージャーは、会社の API にメッセージログポリシーを適用して、コードを変更することなくあらゆるデータやトランザクションの変更を記録して表示できるようにします。

受信および送信 HTTP メッセージの属性を記録するため、Les Vetments では、次の UI 設定でメッセージログポリシーを API に適用します。

- **Message (メッセージ)**​: #\[属性\]
    
    ペイロード中の属性を記録する必要があります。
- **Conditional (条件)**​: 空白
    
    Les Vetments ではすべての属性を必要とするため、メッセージを絞り込むための式は指定しません。
- **Category (カテゴリ)**​: 空白
    
    ログ文ではプレフィックスは不要です。
- **Level (レベル)**​: Info (情報)
    
    すべての種別のメッセージを記録します。Info (情報) ログレベルには、Warn (警告)、Error (エラー)、Debug (デバッグ) ログメッセージも含まれます。
- **Before Calling API (API のコール前)**​: オン
    
    API のコール前に発生したすべてのトランザクションが記録されます。
- **After Calling API (API のコール後)**​: オン
    
    API のコール後に発生したすべてのトランザクションが記録されます。

この設定後は、顧客が Les Vetments のカタログにアクセスしたり、カートの商品を追加または削除したり、Les Vetments のカタログの商品が追加または削除されたりするたびに、ログが生成されます。

```text
**********************************************************************
* Policy: message-logging-1351146-proxy                              *
* OS encoding: UTF-8, Mule encoding: UTF-8                           *
*                                                                    *
**********************************************************************
21:56:50.147     11/30/2020     Worker-0     [MuleRuntime].uber.06: [message-logging-771181-proxy].771181-message-logging.CPU_LITE @71625864     INFO
event:184152a0-3370-11eb-b732-0a8c1820c088 org.mule.extension.http.api.HttpRequestAttributes
{
   Request path=/proxy/1
   Raw request path=/proxy/1
   Method=GET
   Listener path=/proxy/*
   Local Address=/172.25.159.101:8081
   Query String=
   Relative Path=/proxy/1
   Masked Request Path=/1
   Remote Address=/18.191.37.179:21836
   Request Uri=/proxy/1
   Raw request Uri=/proxy/1
   Scheme=http
   Version=HTTP/1.1
   Headers=[
      host=logging-policy.us-e2.cloudhub.io
      x-real-ip=204.14.236.154
      accept=*/*
      user-agent=curl/7.54.0
      x-forwarded-for=204.14.236.154
      x-forwarded-port=80
      x-forwarded-proto=http
      x-sigsci-agentresponse=200
      x-sigsci-mac=7caf3820a5c07d06ef827f1565678167
   ]
   Query Parameters=[]
   URI Parameters=[]
}
21:56:50.254     11/30/2020     Worker-0     [MuleRuntime].uber.07: [logging-policy].proxy.CPU_LITE @f0ce617     INFO
event:184152a0-3370-11eb-b732-0a8c1820c088 org.mule.extension.http.api.HttpResponseAttributes
{
   Status Code=200
   Reason Phrase=OK
   Headers=[
      date=Tue, 01 Dec 2020 00:56:50 GMT
      content-type=application/json; charset=utf-8
      set-cookie=__cfduid=d8afa23a4627ebef39cbc54fea223cb231606784210; expires=Thu, 31-Dec-20 00:56:50 GMT; path=/; domain=.typicode.com; HttpOnly; SameSite=Lax
      x-powered-by=Express
      x-ratelimit-limit=1000
      x-ratelimit-remaining=999
      x-ratelimit-reset=1606784265
      vary=Origin, Accept-Encoding
      access-control-allow-credentials=true
      cache-control=max-age=43200
      pragma=no-cache
      expires=-1
      x-content-type-options=nosniff
      etag=W/"53-hfEnumeNh6YirfjyjaujcOPPT+s"
      via=1.1 vegur
      cf-cache-status=MISS
      accept-ranges=bytes
      cf-request-id=06bd666d0a0000386b7a1fc000000001
      expect-ct=max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
      report-to={"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report?s=qUAIXoQ7qqqvFzjcwGrmK2r2PcSfDZ75jFJd0Gi0BLBUMHAcnC9wJ9I%2FEHJtk%2Bra%2FXWqkA%2F5%2FlzoWoC6YS2Lew%2BqKgjhaphHqx5WrZ0CKHMalhcM9it%2Fks0qzQGwbsRzQg%3D%3D"}],"group":"cf-nel","max_age":604800}
      nel={"report_to":"cf-nel","max_age":604800}
      cf-ray=5fa8d9c1a8c6386b-IAD
   ]
}
12:18:31.770     11/18/2020     Worker-0     agw-policy-set-deployment.01     INFO
Applied policy message-logging-1351146 version 1.0.0 to API testLoggingNew-v1-v1:16481163 (16481163) in application messagelog
```

ヘッダーを記録するため、Les Vetments では ​**\[Message (メッセージ)\]**​ 項目で次のコードスニペットを使用します。

`#[attributes.headers]`

イベントや実行したアクションに基づいてログメッセージをカスタマイズするため、Les Vetments では ​**\[Message (メッセージ)\]**​ 項目で次のコードスニペットを使用します。

`#['User ' authentication.clientId ' performed action ' attributes.method ' on ' attributes.requestPath ' with Payload: ' ++ payload]`

## [](#dataweave-support)DataWeave 式のサポート

メッセージログポリシーでは、​[Flex Gateway でサポートされる標準の DataWeave 式](https://docs.mulesoft.com/jp/gateway/1.8/policies-flex-dataweave-support)​と次に挙げた追加の ​[`vars`](https://docs.mulesoft.com/dataweave/latest/dataweave-variables-context)​ DataWeave 式がサポートされています。以下の式の形式は ​`[vars.<expressions>]`​ (例: `[vars.orgId]`​) となります。

- `orgId`
- `masterOrgId`
- `envId`
- `apiId`
- `apiName`
- `apiInstanceName`
- `apiVersion`
- `receivedTs`​ (rfc3339)
- `repliedTs`​ (rfc3339、要求コンテキストでのみ使用可能)
- `runtimeVersion`​ (例: `v1.7.0`​)
- `hostId`​ (例: `my-host`​)
- `reqId`​ (Flex Gateway ログでは ​`traceId`​)
- `requestDisposition`​ (​`PROCESSED`​ または ​`VIOLATION`​、要求コンテキストでのみ使用可能)
- `request.remoteAddress`
- `request.method`
- `request.requestPath`
- `request.headers`​ (すべてのリクエストヘッダー)
- `violation.clientId`​ (応答コンテキストでのみ使用可能)
- `violation.clientName`​ (応答コンテキストでのみ使用可能)
- `violation.policyName`​ (応答コンテキストでのみ使用可能)
- `violation.violationType`​ (​`VIOLATION`​ または ​`ERROR`​、応答コンテキストでのみ使用可能)

## [](#ポリシーのしくみ)ポリシーのしくみ

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

1. 要求が API に送信されます。
2. 次の条件を満たす場合は、メッセージがログに記録されます。
    
    - ポリシーに定義されているログのレベルとカテゴリが、設定ファイルに定義されたロガーに含まれている。
    - ポリシーの \[Conditional (条件付き)\] 項目が設定されていないか、または設定されている条件が満たされた。
3. API 応答が返されます。メッセージログポリシーは、ポリシーやフローの実行に干渉しません。
4. メッセージがアプリケーションログに表示されます。

## [](#ログ形式について)ログ形式について

メッセージログの形式は次のとおりです。

`<date> [flex-gateway-envoy][<level>] wasm log <policy-name>.default.<api-name>.default.svc main: [req: <request uuid>] [accessLog] <message>`

- `policy-name`​: ポリシーバインドの名前を表示します。
- `api-name`​: API インスタンスの名前を表示します。
- `request uuid`​: メッセージをトリガーした要求の一意の識別子を表示します。

## [](#イベント中の状態の記録)イベント中の状態の記録

メッセージのログは、要求フロー中に特定の間隔で発生します。

- API フローをログに記録する前:
    
    ![API フローをログに記録する前の状態](/mulesoft/current/ja-jp/gateway/1.8/_images/apim-message-logging-policy-states-1.png)
- API フローをログに記録した後:
    
    ![API フローをログに記録した後の状態](/mulesoft/current/ja-jp/gateway/1.8/_images/apim-message-logging-policy-states-2.png)
- API フローの後のエラーハンドラー:
    
    ![エラーハンドラー実行後の状態](/mulesoft/current/ja-jp/gateway/1.8/_images/apim-message-logging-policy-states-3.png)

## [](#severity-levels)メッセージログの重要度レベル

API インスタンスのメッセージログポリシーを設定するときに、重要度レベルを割り当てることができます。ログレポートの各重要度レベルには、特定の情報セットが含まれます。

ログレポートには、選択した重要度レベルと階層の下位のレベルが含まれます。

たとえば、\[DEBUG (デバッグ)\] を選択した場合、ログレポートには \[DEBUG (デバッグ)\] 重要度レベルに加えて、\[INFO (情報)\]、\[WARN (警告)\]、\[ERROR (エラー)\] の重要度レベルが含まれます。ただし、\[ERROR (エラー)\] を選択した場合、ログレポートにはエラーメッセージのみが含まれます。次の表で、各重要度レベルのログに含まれる情報の種別について説明します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 16.6666%;">
<col style="width: 83.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">ログの重要度レベル</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>DEBUG</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>アプリケーション開発者が使用するトレース情報。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>INFO</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>アプリケーションの進行状況を強調する情報メッセージ。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>WARN</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>潜在的な問題を示す、有害な可能性がある状況。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>ERROR</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>通常のプログラムの実行は妨げられ、アプリケーションの実行は継続できる可能性があるイベント。</p>
</div></div></td>
</tr>
</tbody>
</table>