Logコマンド


Logコマンド

Alexa Presentation Language(APL)オーサリングツールのライブプレビューモードやその他のデバッグツールなど、デバッグコンテキストで使用するログメッセージを送信します。

オーサリングツールでドキュメントのプレビューとデバッグを行う方法については、Log Windowでドキュメントをデバッグするを参照してください。

プロパティ

Logコマンドには、共通のコマンドプロパティに加えて、以下の表に示すプロパティがあります。typeプロパティはLogに設定します。

コマンドを実行するために値が必要なプロパティの場合、以下の表の「デフォルト」列に「必須」と表示されています。それ以外の場合はデフォルト値が表示されますが、デフォルト値がないこともあります。

プロパティ デフォルト 説明

level

列挙値

info

ログの重大度レベルを表します。
指定できる値:debuginfowarnerrorcritical

message

文字列

ログメッセージです。

arguments

引数の配列

[]

(任意)追加のコンテキスト情報を提供するためにログメッセージに含める情報です。

level

level列挙値は重大度を表します。Logコマンドでは、次の表に示すレベルがサポートされています。この表は、重大度の最も低いレベルから高いレベルの順に並んでいます。

レベル 説明

debug

診断に使用される詳細情報です。

info

想定された動作を確認します。

warn

予期しない状況が発生しましたが、回復可能です。

error

問題が発生し、回復できない可能性があります。

critical

重大なエラーが発生しました。

ログ関数を使用すると、レベルの列挙値を重大度の数値に変換できます。levelプロパティには数値も指定できます。

{
  "onPageChanged": {
    "type": "Log",
    "level": "${Level.INFO}",
    "message": "ページが変更されました。",
    "arguments": [
      "${event.source.value + 1}"
    ]
  }
}

message

messageプロパティには、実行時にデータバインディングが適用されます。コマンドのデータバインディングコンテキストの情報を使用してメッセージを作成できます。

arguments

argumentsプロパティは、任意のキーと値のペアを含むオプションのマップです。このプロパティには、コマンドの実行時にデータバインディングが適用されます。

Logコマンドの例

次の例は、Pagerのページ変更に応答して情報レベルのログを出力します。

{
  "type": "APL",
  "version": "2024.3",
  "mainTemplate": {
    "items": [
      {
        "type": "Pager",
        "onPageChanged": [
          {
            "type": "Log",
            "level": "info",
            "message": "ページが変更されました。",
            "arguments": [
              "新しいページのインデックスは${event.source.page}です。"
            ]
          }
        ]
      }
    ]
  }
}

オーサリングツールでログメッセージを確認する例については、Log Windowでドキュメントをデバッグするを参照してください。

本番コードでログ出力を無効にする

本番コードでログ出力を無効にすると、パフォーマンスに影響する可能性を抑えることができます。そのための1つのアプローチとして、Logコマンドをユーザー定義コマンド内にラップする方法があります。

次の例では、enableLoggingというバインド変数を、ログのオンとオフを切り替えるフラグとして使用します。enabledLoggin変数がtrueの場合、Logコマンドは、Pagerでページが変更されるたびにログメッセージを送信します。

{
  "type": "APL",
  "version": "2024.3",
  "commands": {
    "MyLog": {
      "parameters": [
        "level",
        "message",
        "arguments"
      ],
      "command": {
        "when": "${enableLogging && Log.levelValue(level) >= logVerbosity}",
        "type": "Log",
        "level": "${level}",
        "message": "${message}",
        "arguments": "${arguments}"
      }
    }
  },
  "mainTemplate": {
    "bind": [
      {
        "name": "enableLogging",
        "type": "boolean",
        "value": false
      },
      {
        "name": "logVerbosity",
        "type": "number",
        "value": "${Level.INFO}"
      }
    ],
    "items": [
      {
        "type": "Pager",
        "onPageChanged": {
          "type": "MyLog",
          "level": "info",
          "message": "ページが変更されました。",
          "arguments": [
            "${event.source.value + 1}"
          ]
        }
      }
    ]
  }
}

このページは役に立ちましたか?

最終更新日: 2025 年 12 月 04 日