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");
添加自定义属性¶
创建日志条目时,可以在键值对中添加您自己的属性。Snowflake 将这些自定义属性保存到事件表的 RECORD_ATTRIBUTES 列 中。
若要在调用 snowflake.log
方法时添加自定义属性,请将 JSON 中的键值对作为第三个实参传递给 log
函数。
以下示例中的代码将消息“Logging with attributes”记录到事件表的 VALUE 列中。它还向 RECORD_ATTRIBUTES 列添加了两个自定义属性。
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";
$$;
此 log
调用的输出在事件表中如下所示。请注意,RECORD_ATTRIBUTES 列将包括 Snowflake 自动添加的属性。
------------------------------------------------------------------
| VALUE | RECORD_ATTRIBUTES |
------------------------------------------------------------------
| "Logging with attributes" | { |
| | "custom1": "value1", |
| | "custom2": "value2" |
| | } |
------------------------------------------------------------------