- 类别:
系统函数 (系统信息)
SYSTEM$GET_SERVICE_LOGS¶
从 Snowpark Container Services 服务 容器中检索本地日志。
语法¶
实参¶
必填:
service_name服务名称。
instance_id服务实例的 ID,从 0 开始。
container_name服务规范文件中指定的容器名称。
可选:
number_of_most_recent_lines要检索的尾随日志行数。
默认:最多 100 KB 最新日志行。
retrieve_previous_logs如果为 TRUE,该函数从先前终止的容器中检索日志。只有容器至少重启过一次,才能指定此参数。
默认值:false(从当前运行的容器中检索日志)。
返回¶
返回一个字符串,由指定服务容器中以换行符分隔的日志条目组成。
使用说明¶
当前角色必须具有服务的 MONITOR 权限才能访问容器日志。
该函数会将容器日志作为字符串返回。您可以使用 SPLIT_TO_TABLE,将字符串转换为一个表,表中的每行是由换行符分隔的一个条目。
示例¶
从当前容器中检索日志¶
以下语句从在“echo”容器中运行的“echo_service”服务的实例 0 中检索最后的 10 个日志行:
您还可以关注 教程 1:创建 Snowpark Container Services 服务 以启动服务并执行上述命令,从容器中获取服务日志。
该函数返回一个字符串,由换行符分隔的日志条目组成。您可以使用 SPLIT_TO_TABLE 函数和 TABLE() 关键字(请参阅 表函数),将此字符串转换为表。
您可以进一步应用筛选器,以仅检索特定日志条目。以下 SELECT 语句中的 WHERE 子句使用 CONTAINS 函数,仅检索包含特定日期字符串的日志行:
以下示例输出显示检索到的三个日志条目行:
从先前终止的容器中检索日志¶
以下语句从之前终止的“echo_service”服务实例中检索最后 10 条日志行,该服务在“echo”容器中运行。在这里,我们假设容器至少重启过一次: