Workflows 会自动为 Cloud Logging 中的工作流执行生成执行日志。
您还可以启用调用日志记录。或者,您可以创建使用来源中的 sys.log
函数的自定义日志。使用调用日志记录和自定义日志,您可以控制在工作流执行期间日志发送到 Logging 的时间,并且在调试工作流时尤其有用。
如需了解详情(包括 engine_call
和 executions_system
日志记录 proto 文件),请参阅此 GitHub 代码库。
执行日志
每个工作流执行都至少会自动触发两个执行日志:一个在执行开始时,一个在执行结束时。
如需详细了解 Logging 中提供的 Workflows 平台日志,请参阅 Google Cloud Platform 日志。
调用日志记录
您可以设置标志,以便记录工作流执行期间的每个调用步骤,以及返回步骤名称、函数名称、函数参数和调用响应。或者,您可以记录捕获的任何异常或停止调用的任何异常。
系统只会记录明确的调用步骤;例如,对子工作流或库函数的调用。系统不会记录在表达式或标准库函数(例如,sys.log
中的 http.post
)内以及连接器内的调用。
HTTP 调用日志中的 HTTP Authorization
请求标头会被遮盖。
将调用日志记录应用于工作流定义或工作流执行时,您可以指定所需的日志记录级别。执行日志级别 优先级高于任何工作流日志级别,除非执行日志级别不是 指定(默认值);系统会应用工作流日志级别
请注意,Cloud Logging 设置的日志条目大小限制 同样适用于通话记录
自定义日志
如需在工作流执行期间在 Logging 中创建日志条目,请在工作流中定义调用 sys.log
函数的步骤:
YAML
- step1: assign: - varA: "Hello" - varB: "World" - logStep: call: sys.log args: text: TEXT severity: SEVERITY - step2: return: ${varA + " " + varB}
JSON
[ { "step1": { "assign": [ { "varA": "Hello" }, { "varB": "World" } ] } }, { "logStep": { "call": "sys.log", "args": { "text": "TEXT", "severity": "SEVERITY" } } }, { "step2": { "return": "${varA + " " + varB}" } } ]
创建日志条目时,请定义以下内容:
TEXT
:必填。要记录的文本。如果您需要 记录地图的值,请使用${json.encode_to_string(myMap)}
。SEVERITY
:可选。日志条目的严重级别。例如INFO
、WARNING
或CRITICAL
。
如需了解详情,请参阅 sys.log
函数参考文档。
所需权限
如需应用调用日志记录或将自定义日志发送到 Logging,工作流必须与具有 logging.logEntries.create
权限的服务账号相关联(例如 roles/logging.logWriter
角色)。如果您需要更改与您的工作流一起更新的服务账号,请参阅更新工作流。如需详细了解如何创建服务账号并分配角色,请参阅管理对项目、文件夹和组织的访问权限。
查看工作流日志
您可以在 Workflows 或 Logging 中查看日志。如需查看单个工作流的日志,请使用 Workflows 中的日志标签页。如需获取所有工作流的日志的汇总视图,请使用 Logging 中的日志浏览器页面。
在 Workflows 中查看日志
如需在 Workflows 中查看工作流的日志,请执行以下操作:
在 Google Cloud 控制台中,转到 Workflows 页面:
如需访问工作流的日志,请点击工作流的名称以转到其详情页面。
如需查看日志,请点击日志。
要按严重性过滤日志,请在默认列表中选择要显示的日志类型。默认情况下,系统会显示所有严重程度的日志。
工作流详情页面上的日志标签页会显示以下类型的日志:
发送到 Logging 的日志
对工作流执行的任何操作(例如更新工作流定义)的审核日志
在 Logging 中查看日志
如需在 Logging 中查看日志,请执行以下操作:
在 Google Cloud 控制台中,转到日志浏览器页面:
在查询构建器中,点击资源并输入
workflow
。从列表中选择 Cloud 工作流,然后点击添加。点击运行查询。
如需详细了解如何在 Logging 查看日志,请参阅使用日志浏览器。