审计日志留痕体系流程
适用场景
系统需要把「写操作」统一留痕(谁、什么角色、做了什么、对什么对象、细节),满足 P-06 合规审计,且未登录也记「成员」时不漏记时触发。中心:app._audit() + db.add_audit + /audit 页。
操作步骤
- 统一埋点:
app._audit(action, target, detail='')(L1126,P-06 留痕)取self._who()与self._role(),写db.add_audit(who or '成员', role, action, target, detail)(L1129)——未登录也记「成员」,绝不因为匿名而漏记。 - 写操作全覆盖:备份(
_audit('backup', ...)L798)、制度编辑 / 上传 / 应用(edit/upload/applyL909/933/950)、台账增删改(delete/add/editL1019/1030/1055)、AI 建议(suggestL1055)、改密码(set_pwL1279)等全链路埋点。 - 审计页:
/audit路由(L660–663)→app._audit_page()(L1203)展示留痕。
注意边界
- 必须记「真实登录人 + 角色」,未登录记「成员」而非空,否则审计链断裂。
- 埋点只在写操作,读操作不记(避免日志爆炸)。
- 审计与通知中心配合:账号 / 密码异常既写审计又落通知中心(L1167)。
反例避雷
- 未登录写
who=''→ 审计查不到责任人;必须who or '成员'。 - 只在成功分支埋点 → 失败操作无痕;异常路径也要记。
- 读操作也埋 → 日志翻倍、关键写操作被淹没。
关联笔记
- [[技能|Web权限与验密守卫加固法]]
- [[技能|通知中心与临期中心聚合流程]]
- [[技能|吞噬异常统一留痕治理法]]
实战战绩
2026-10-02 落地:写操作全链路 _audit 埋点,未登录记「成员」;/audit 页可查;与通知中心联动异常告警。
版本记录
| 版本 | 日期 | 变更 |
|---|---|---|
| v1.0.0 | 2026-10-03 | 据 app._audit/_audit_page 与各写操作埋点固化 |