JavaScript でのメッセージのログ

Snowflake JavaScript API に含まれる snowflake オブジェクトを使用して、 JavaScript で記述された関数またはプロシージャハンドラーからのメッセージをログできます。ログエントリを格納するイベントテーブルを設定すると、Snowflakeはハンドラーコードによって生成されたログエントリをテーブルに格納します。JavaScript API については、 JavaScript ストアドプロシージャ API をご参照ください。

コードからログする前に、必要なメッセージがイベントテーブルに格納されるようにログレベルが設定されていることを確認してください。詳細については、 ロギング、メトリクス、トレースのレベル設定 をご参照ください。

注釈

メッセージのログを開始する前に、イベントテーブルを設定する必要があります。詳細については、 イベントテーブルの概要 をご参照ください。

イベントテーブルで SELECT コマンドを実行すると、ログメッセージにアクセスできます。詳細については、 ログメッセージの表示 をご参照ください。

Snowflakeでのログの設定とメッセージの取得に関する一般的な情報については、 関数とプロシージャからのメッセージのログ をご参照ください。

次の例のコードでは、含まれている snowflake オブジェクトを使用して、サポートされている各レベルでメッセージをログします。入力行を処理するメソッドからログされるメッセージは、 UDF によって処理される 行ごと にログされることに注意してください。UDF が大きなテーブルで実行されると、イベントテーブルに多数のメッセージが生成される可能性があります。

snowflake.log("info", "Information-level message");
snowflake.log("error", "Error message");
snowflake.log("warn", "Warning message");
snowflake.log("debug", "Debug message");
snowflake.log("trace", "Trace message");
snowflake.log("fatal", "Fatal message");
Copy

カスタム属性の追加

ログエントリーを作成する際、キーと値のペアで独自の属性を追加することができます。Snowflake は、これらのカスタム属性をイベントテーブルの RECORD_ATTRIBUTES 列 に保存します。

snowflake.log メソッドを呼び出す際にカスタム属性を追加するには、 JSON でキーと値のペアを組み立て、 log 関数の第3引数として渡します。

以下の例のコードは、イベント・テーブルの VALUE 列に「Logging with attributes」というメッセージを記録する。また、 RECORD_ATTRIBUTES 列に2つのカスタム属性を追加します。

CREATE OR REPLACE PROCEDURE do_logging_javascript()
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
  let log_attributes = {
    "custom1": "value1",
    "custom2": "value2"
  }
  snowflake.log("info", "Logging with attributes", log_attributes)
  return "success";
$$;
Copy

この log コールの出力は、以下のようにイベント・テーブルに表示されます。RECORD_ATTRIBUTES 列には、Snowflake が自動的に追加する属性が含まれることに注意してください。

------------------------------------------------------------------
| VALUE                     | RECORD_ATTRIBUTES                  |
------------------------------------------------------------------
| "Logging with attributes" | {                                  |
|                           |   "custom1": "value1",             |
|                           |   "custom2": "value2"              |
|                           | }                                  |
------------------------------------------------------------------