関数とプロシージャからのメッセージのログ¶
Snowpark APIs を使用して 記述したものを含む、ストアドプロシージャ、 UDF、または UDTF からのメッセージ(警告メッセージやエラーメッセージなど)をログできます。ログされたメッセージには、 イベントテーブル (ログされたメッセージを含むイベントをキャプチャする事前定義されたテーブルの一種)からアクセスできます。サポートされているハンドラー言語のリストについては、 サポートされている言語 をご参照ください。
たとえば、Java UDF では、 SLF4J API を使用してメッセージをログできます。後で、イベントテーブル内のログされたメッセージにアクセスできます。
注釈
ログメッセージを収集する前に、 テレメトリデータ収集を有効にする 必要があります。 コードにインスツルメンテーションを行う 場合、Snowflake はデータを生成し、イベントテーブルに収集します。
ログの例¶
次の例のPythonコードは、 logging モジュールをインポートし、ロガーを取得し、 INFO レベルでメッセージをログします。
注釈
入力行を処理するメソッドからログされるメッセージは、 UDF によって処理される 行ごと にログされます。UDF が大きなテーブルで実行されると、イベントテーブルに多数のメッセージが生成される可能性があります。
import logging
logger = logging.getLogger("mylog")
def test_logging(self):
    logger.info("This is an INFO test.")
はじめるにあたり¶
ハンドラーコードからログを開始するには、次の高レベルのステップに従います。
- 
Snowflakeは、イベントテーブルを使用して、ハンドラーコードからログされたメッセージを格納します。イベントテーブルには、 Snowflakeによって事前定義された列 があります。 
- 使用するハンドラー言語のログ API について理解を深めます。 - ハンドラー言語のリストについては、 サポートされている言語 を参照してから、 言語からログする方法に関するコンテンツ を表示します。 
- ログコードをハンドラーに追加します。 
- イベントテーブルから ログデータを取得 する方法を学習します。 
ログメッセージのレベル¶
ログレベルを設定すると、イベントテーブルに格納されるログイベントデータのレベルを管理できます。ログする前に、この設定を使用して、ログメッセージの重大度を確実に取得してください。
詳細については、 ロギング、メトリクス、トレースのレベル設定 をご参照ください。
サポートされている言語¶
次の言語で記述されたコードからのメッセージをログできます。これには、ハンドラーコードを Snowpark APIs で記述する場合も含みます。
| 言語/型 | Java | JavaScript | Python | Scala | SQL | 
|---|---|---|---|---|---|
| ストアドプロシージャハンドラー | ✔ | ✔ | ✔ | ✔ | ✔ ** | 
| Streamlitアプリ | ✔ | ||||
| UDF ハンドラー(スカラー関数) | ✔ | ✔ | ✔ | ✔ | |
| UDTF ハンドラー(テーブル関数) | ✔ | ✔ | ✔ | ✔ * | 
凡例
- *:
- Snowparkで記述されたScala UDTF ハンドラー。 
- **:
- Snowflakeスクリプトはストアドプロシージャの記述に使用されます。 
注釈
外部関数のリクエストおよび応答トランスレーター のログはサポートされていません。
ハンドラコードからのログ記録¶
メッセージをログするには、ハンドラーコード言語に共通の関数を使用できます。Snowflakeはメッセージをインターセプトし、作成したイベントテーブルに格納します。
たとえば、Java UDF では、 SLF4J API を使用してメッセージをログできます。後で、イベントテーブル内のログされたメッセージにアクセスできます。
エラーが発生したときにメッセージをログする予定がある場合は、使用している言語でエラーを処理するための構造内からメッセージをログする必要があります。たとえば、Java UDF で、例外を処理する catch ブロックにおいてメッセージをログするメソッドを呼び出します。
次のテーブルに、ログでサポートされているハンドラー言語と、コードからのログに関するコンテンツへのリンクを示します。
| 言語 | ログライブラリ | ドキュメント | 
|---|---|---|
| Java | SLF4J API | |
| JavaScript | Snowflake JavaScript API  | |
| Python | 標準ライブラリ  | |
| Scala | SLF4J API | |
| Snowflakeスクリプト | Snowflake SYSTEM$LOG 関数。 | 
ログメッセージの表示¶
ログメッセージは、 Snowsight 、またはログエントリが保存されているイベントテーブルをクエリすることで表示することができます。詳細については、 ログメッセージの表示 をご参照ください。