---
name: audit-logging
when: '审计日志, 操作日志, 审计记录, 操作记录, 变更记录, 操作追踪'
scope:
  - backend
products:
  - '*'
id: ka-domain_knowledge-audit-logging
asset_kind: domain
lifecycle_status: active
owner_mechanism_id: mc-domain-knowledge
authority: supporting
routes:
  - '*'
primary_triggers:
  - 审计日志
  - 操作日志
  - 审计记录
  - 操作记录
  - 变更记录
  - 操作追踪
priority: P2
specificity: 3
version: 1.1.0
last_reviewed: '2026-06-01'
consumes: []
emits: []
secondary_triggers: []
negative_triggers: []
type: domain
stages: ["*"]
---

## 业务规则
1. 所有关键业务操作（创建、修改、删除、导出、权限变更）必须记录审计日志
2. 审计日志不可修改和删除（append-only），至少保留 3 年
3. 每条审计日志必须包含：操作人、操作时间、操作类型、操作对象、变更前后数据
4. 敏感操作（删除、权限变更、导出）需额外通知管理员
5. 审计日志查询必须支持按时间范围、操作人、操作类型、目标对象筛选
6. 审计日志必须记录操作来源（Web/API/定时任务/系统），便于问题追溯
7. 批量操作必须合并为一条审计记录，包含操作数量和关键参数

## 约束条件
- 审计日志存储在独立表中（audit_log），不与业务数据混存
- 通过 AOP 切面自动记录，减少开发人员手动埋点
- 变更前后数据使用 JSON 格式存储（before/after 字段）
- 审计日志表不支持 UPDATE 和 DELETE（数据库层权限控制）
- 审计日志保留期限必须符合合规要求（如 ≥ 180 天）

## 例外情况
- 查询操作（GET）一般不记录审计日志（除导出操作）
- 系统内部自动任务的操作记录标注为"系统"操作人
- 批量操作合并为一条审计记录（含数量信息）

## 关联模式
参见 logging 模式（日志记录规范）、error-handling 模式（异常处理与审计）
- logging
- data-privacy
