Skip to content

操作日志

API 事实来源:Django 后端自动文档

日志记录什么

logs 记录关键业务操作,供后台查询和导出。它是审计辅助,不驱动业务状态。

代码入口:

  • backend/apps/logs/models.py
  • backend/apps/logs/views/operation_log.py
  • backend/apps/logs/utils.py
  • backend/apps/logs/permissions.py

上下文来源

业务代码通过 log_operation(...) 写日志。OperationLogContextMiddleware 使用 ContextVar 保存当前请求,服务层可在未显式传入 request 时补齐上下文。

一条有价值的日志描述“谁在什么角色下对什么目标做了什么”。只记录技术动作会让后台审计失去业务语义。

哪些操作需要日志

审批、取消、导入、配置变更、设备令牌签发和撤销都属于关键业务动作。日志导出使用与查询一致的过滤条件,避免“页面看到的”和“导出的”不是同一批数据。

日志是审计辅助,不是权限判断或业务回滚依据。

已知技术债

IsLogAdmin 仍读取旧版 user.role 字段,而当前用户模型使用 roles。因此日志接口当前主要依赖 Django is_superuser / is_staff 可靠访问。修复时应接入当前角色体系,并补权限测试。