<service_name>!SPCS_GET_LOGS¶
返回 Snowflake 从指定服务的容器收集的日志。有关更多信息,请参阅 访问容器日志。
备注
仅在版本 9.20 或更高版本中创建的服务和作业支持该函数。
- 另请参阅:
语法¶
<service_name>!SPCS_GET_LOGS(
[ START_TIME => <constant_expr> ],
[ END_TIME => <constant_expr> ] )
实参¶
START_TIME => constant_expr
检索日志的时间范围的开始时间(TIMESTAMP_LTZ 格式)。有关构造日期、时间和时间戳数据的可用函数,请参阅 日期和时间函数。
如果未指定
START_TIME
,则默认为 1 天前。END_TIME => constant_expr
检索日志的时间范围的结束时间(TIMESTAMP_LTZ 格式)。
如果未指定 END_TIME,则默认为当前时间戳。
输出¶
输出中的每一行对应于事件表中的一个记录事件。您的服务输出到 stdout
或 stderr
的每一行在输出中占一行。
该函数返回以下列:
列 |
数据类型 |
描述 |
---|---|---|
|
TIMESTAMP_NTZ |
Snowflake 从容器收集日志时的通用协调时间 (UTC) 时间戳。该值映射到事件表中的 TIMESTAMP 列。 |
|
NUMBER |
作业服务实例的 ID。该值映射到事件表中 |
|
VARCHAR |
容器的名称。该值映射到事件表中 RESOURCE_ATTRIBUTES 列中的 |
|
VARCHAR |
Snowflake 从您的应用程序容器收集的日志。该值映射到事件表中的 VALUE 列。 |
|
OBJECT |
有关日志的其他信息。例如,从中收集日志的日志流(stderr 或 stdout)。该值映射到事件表中的 RECORD_ATTRIBUTES 列。 |
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
OWNERSHIP |
服务 |
要对架构中的任何对象执行操作,需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
您的容器日志可能需要几分钟才能显示在输出中。
示例¶
检索 Snowflake 在过去一天从 my_test_job
作业的容器收集的日志。
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS());
输出示例:
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
| TIMESTAMP | INSTANCE_ID | CONTAINER_NAME | LOG | RECORD_ATTRIBUTES |
|-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------|
| 2025-06-26 00:23:40.281 | 0 | main | job-tutorial - INFO - Job finished | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Executing query [select current_time() as time,'hello'] and writing result to table [results] | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Connection succeeded. Current session context: database="TUTORIAL_DB", schema="DATA_SCHEMA", warehouse="TUTORIAL_WAREHOUSE", role="TEST_ROLE" | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:36.852 | 0 | main | job-tutorial - INFO - Job started | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
检索 Snowflake 在过去三天内从 my_test_job
作业的容器收集的日志。
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS(START_TIME => DATEADD('day', -3, CURRENT_TIMESTAMP())));
检索名为 main
的容器中 my_test_job
作业实例 0
的日志。如以下示例所示,如果您省略 START_TIME 和 END_TIME 实参,该函数将检索过去一天的日志:
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS())
WHERE instance_id = 0 AND container_name = 'main';