流程自动化执行日志需要保留哪些信息

规则驱动的流程自动化执行日志,至少要能回答四个问题:这次执行为什么发生、做了什么、结果如何、由谁负责。围绕这个目标,日志应保留标识与关联、时间与耗时、执行主体、输入与输出、结果与异常、追溯与合规六类信息。字段数量可按流程复杂度增减,取舍标准是能否凭日志还原一次完整执行。



要点总览(TL;DR)


  • 规则驱动的流程自动化执行日志应覆盖六类信息:标识与关联、时间与耗时、执行主体、输入与输出、结果与异常、追溯与合规。
  • 字段取舍以能否还原一次执行为标准:为什么发生、做了什么、结果如何、由谁负责,四项有一项答不上来,字段就应保留。
  • 采集按触发、节点执行、结束三阶段推进,同步写主记录、异步补详情,避免日志拖慢流程本身。
  • 流程负责人定字段口径,开发实现写入与脱敏,运维负责监控告警,审计与合规确定留存期限和访问权限。
  • 缺少唯一标识或错误码视为日志未完成;留存期限按业务与合规要求分级确定,脱敏在写入前完成。


一份可用的执行日志先定字段清单


字段清单建议先按六类分组,再逐项确定字段名、示例值、是否必填和用途。分组的意义在于让日志同时具备三种能力:定位(这次执行属于哪个流程、哪个业务对象)、解释(规则为什么这样判定、状态如何变化)、追责(谁触发、谁处理、失败后谁跟进)。只记录成功或失败结果,无法支撑问题排查;字段过多又会让写入和维护成本失控,因此必填项应集中在还原执行所必需的信息上。


分类 字段 示例值 是否必填 用途
标识与关联 执行实例ID EXE-20251215-000871 必填 唯一标识一次执行,串联各节点记录
标识与关联 流程/规则ID与版本 RULE-APPROVAL-01,v3 必填 区分规则变更前后的执行差异
标识与关联 触发来源 状态变更、定时任务、手动触发 必填 解释执行由什么事件引起
标识与关联 业务对象与关联工单 需求单 REQ-1042 必填 从业务对象反查执行记录
时间与耗时 触发时间 2025-12-15 10:02:11 必填 确定执行起点
时间与耗时 节点开始/结束时间 10:02:12 — 10:02:14 必填 定位耗时集中在哪个节点
时间与耗时 总耗时、等待时长 总耗时 46 秒,等待审批 31 秒 必填 区分系统处理与人工等待
执行主体 触发人/系统账号 张三;svc-automation 必填 明确执行发起者
执行主体 审批或处理人、代理关系 李四(代王五审批) 条件必填 还原人工介入环节的责任人
输入与输出 关键入参快照 优先级=高,类型=缺陷 必填 复现判定条件
输入与输出 规则判定结果 命中规则2,跳过规则3 必填 解释为什么执行了该动作
输入与输出 状态流转前后值 待处理 → 审批中 必填 核对业务状态是否按预期变化
结果与异常 最终状态 成功、失败、跳过、超时 必填 快速筛选异常执行
结果与异常 错误码与错误摘要 E-4031,审批人缺失 失败时必填 支持分类统计与快速定位
结果与异常 重试次数与重试结果 重试2次,第2次成功 条件必填 判断失败是偶发还是持续
追溯与合规 日志级别 INFO、WARN、ERROR 必填 控制采集粒度与告警触发
追溯与合规 操作来源IP或终端 10.12.3.45 建议必填 支持安全审计
追溯与合规 留存期限、访问与导出记录 热存90天,归档1年 按制度 满足合规与审计要求

必填项的判断可以逐条自问:删掉这个字段,是否还能解释这次执行为什么发生、做了什么、结果如何、由谁负责。四项中有一项无法回答,该字段就应保留。字段命名保持稳定,规则版本变化时通过版本字段区分,避免直接改动字段含义导致历史日志无法比对。



按执行链路采集:从触发到结束的写入步骤


采集流程按触发、节点执行、结束三个阶段组织,每个阶段明确输入、动作、输出和完成标志。写入方式建议同步写主记录、异步补详情:触发时先落一条包含执行实例ID和关键标识的主记录,保证即使后续环节异常也有据可查;节点详情、入参快照等体量较大的内容异步写入,避免日志采集拖慢流程本身。


触发阶段


  • 输入:触发事件、业务对象当前状态、命中的规则及版本。
  • 动作:生成执行实例ID,写入触发来源、触发人、规则版本、业务对象与关联工单。
  • 输出:一条可检索的主记录。
  • 完成标志:凭执行实例ID能查到这次执行的起点和触发原因。

节点执行阶段


  • 输入:节点入参、规则判定所需字段值。
  • 动作:记录节点入参快照、判定结果、状态流转前后值、节点开始与结束时间;涉及人工审批的,记录处理人与代理关系。
  • 输出:按节点排列的执行明细。
  • 完成标志:每个节点的动作都能对应到具体判定依据。

结束阶段


  • 输入:各节点执行结果、异常信息。
  • 动作:写入最终状态、错误码与错误摘要、总耗时与等待时长、重试次数与重试结果。
  • 输出:一条完整的执行记录。
  • 完成标志:任一次执行都能凭日志还原全过程,包括失败原因和重试经过。

三个阶段共用同一个执行实例ID,是日志可还原的前提。若流程包含分支或并行节点,节点记录中应补充父节点或分支标识,避免明细顺序混乱。日志写入本身也应设置失败处理:主记录写入失败需要告警,详情写入失败可重试并记录补偿结果。



角色分工与交付物:谁定义字段、谁写日志、谁看日志


日志能否长期可用,取决于职责是否落到具体角色和交付物上。字段定义、代码实现、运行监控和合规管理分属不同角色,交接界面应通过文档和规范固定下来,避免字段随意增减或口径不一致。


角色 主要职责 交付物
流程/规则负责人 定义关键业务字段、判定结果口径、状态流转规则 字段定义说明、规则版本变更记录
开发人员 实现字段写入、脱敏处理、错误码规范与异步补详情机制 日志写入代码与配置、错误码表、脱敏规则说明
运维人员 监控失败率、超时与重试情况,配置告警阈值 监控看板、告警规则、异常处理记录
审计与合规 确定留存期限、访问权限、导出审批流程 留存策略、权限矩阵、访问与导出审计记录

流程负责人变更规则时,应同步更新字段定义与版本号;开发人员新增字段需经过负责人确认,避免日志中出现无口径的字段。运维的告警规则应与错误码表对应,使告警能直接指向失败类型。审计角色定期抽查日志完整性与访问记录,抽查结果作为下一轮字段调整的依据。


在研发管理平台中承载自动化规则时,规则管理与执行记录可以放在同一套工作项和审批数据上。例如 ONES Automation 支持通过统一门户集中接收工单,并支持自定义处理流程与字段配置;其自动化规则由 Project 管理员在「配置中心」的「自动化规则」页面管理。规则触发后产生的状态流转和审批记录,可与工作项关联,便于按业务对象回查执行经过。具体日志字段与留存配置以产品实际能力为准。



示例:一条审批自动流转日志长什么样


以下为演示情景:某需求单优先级变更为“高”后,规则自动将其流转至审批中并通知审批人。示例仅用于说明字段填写方式,不代表任何产品的实际日志格式。


字段 填写内容
执行实例ID EXE-20251215-000871
规则ID与版本 RULE-APPROVAL-01,v3
触发来源 字段变更(优先级)
业务对象 需求单 REQ-1042
触发人 张三
触发时间 2025-12-15 10:02:11
关键入参快照 优先级:中 → 高;模块:支付
规则判定结果 命中规则2(高优先级需审批),未命中规则3(低优先级自动关闭)
状态流转 待处理 → 审批中
审批处理人 李四(代王五审批)
节点耗时 流转 2 秒,等待审批 31 秒
最终状态 成功
错误码与摘要 无
重试情况 未重试
日志级别 INFO
操作来源 10.12.3.45

从样例可以提炼三条可迁移的规律:第一,入参快照保留变更前后的值,判定结果写明命中和未命中的规则,二者结合才能解释执行原因;第二,等待时长与系统处理时长分开记录,便于判断瓶颈在人工环节还是系统环节;第三,代理审批关系单独记录,避免责任归属只落在被代理人身上。该示例适用于规则驱动的审批流转场景,不涉及 AI 智能编排和接口对接层面的日志设计。



留存、脱敏与完成检查


留存策略按业务需要与合规要求分级。常用做法是近期日志热存,支持快速检索和问题排查;超过热存期的日志转入归档,保留查询能力但降低存储成本。留存期限由审计与合规角色结合业务影响确定,本文不给出统一数值。规则版本变更、重大故障相关的执行记录可单独标记,延长保留时间。


脱敏应在写入前完成。入参中的个人信息、账号密钥、业务敏感字段按敏感程度处理:密钥类信息不写入日志或仅保留掩码;个人信息按最小必要原则记录,必要时做哈希或部分遮蔽;业务敏感字段可只记录字段名和变更类型。脱敏规则由开发人员实现,流程负责人确认哪些字段属于敏感范围,审计角色抽查执行情况。


访问与导出同样需要留痕。日志查询、批量导出应记录操作人、时间、查询条件和导出范围,权限按角色分配,导出行为可设置审批。完成检查可按以下清单逐项核对:


  • 字段齐全:六类信息均有对应字段,必填项无缺失。
  • 可还原:随机抽取执行记录,能说明触发原因、执行动作、结果和责任人。
  • 可检索:能按执行实例ID、业务对象、时间范围和最终状态查询。
  • 权限受控:访问与导出均有权限校验和操作记录。
  • 异常可告警:失败、超时、重试达到阈值时能触发告警并指向错误码。
  • 脱敏有效:抽查日志内容,未出现明文密钥和超范围个人信息。

缺少唯一标识或错误码时,视为日志未完成,应先补齐再进入正式运行。其余检查项可按流程重要程度分批推进,但唯一标识、最终状态和错误码三项应在首版日志中具备。



常见问题


流程执行很频繁,全量记录入参快照会不会拖慢流程?


可以把写入拆成两层:触发时同步落一条主记录,只含执行实例ID、规则版本、触发来源、业务对象等轻量字段;入参快照、节点明细等体量较大的内容异步写入。这样即使详情写入延迟或失败,主记录仍能定位这次执行。异步写入需要配套重试和补偿记录,详情写入失败时留下痕迹,避免出现主记录存在而明细缺失却无人知晓的情况。


规则版本升级后,历史日志还能直接比对吗?


能比对的前提是日志中记录了规则ID与版本号,并且字段含义保持稳定。规则升级时新增字段可以接受,直接改变已有字段的含义会让新旧日志无法对照。建议在字段定义说明中记录每次变更的内容和生效时间,规则负责人变更规则时同步更新版本号。排查历史问题时,先按版本号确认当时生效的规则,再解读判定结果字段。


日志里的个人信息和密钥类内容应该怎么处理?


脱敏应在写入前完成,而不是查询时再遮蔽。密钥、令牌类信息建议不写入日志,或只保留掩码;个人信息按最小必要原则记录,必要时做哈希或部分遮蔽;业务敏感字段可以只记录字段名和变更类型,不记录具体值。哪些字段属于敏感范围由流程负责人确认,开发人员实现脱敏规则,审计角色定期抽查日志内容是否出现明文密钥或超范围个人信息。


失败重试多次的执行,日志应该记成一条还是多条?


建议以一次业务触发为一个执行实例,重试作为该实例内的过程记录,而不是每次重试都新开一条独立执行。日志中保留重试次数、每次重试的时间和结果,最终状态以最后一次结果为准,同时保留首次失败的错误码,便于区分偶发失败和持续失败。如果重试由新的触发事件引起,则另开执行实例,并通过关联字段指向原实例。


日志留存多久比较合适,有没有统一标准?


留存期限取决于业务影响和所在行业的合规要求,没有适用于所有团队的统一数值。常见做法是近期日志热存以支持快速检索和问题排查,超过热存期后转入归档,保留查询能力并降低存储成本。规则版本变更、重大故障相关的执行记录可以单独标记并延长保留时间。具体期限由审计与合规角色结合业务情况确定,并写入留存策略文档。