# 管理员操作日志(backend_log) 后台的写操作统一留痕,落 `backend_log` 表(`id / aid / action / ip / remark / create_at`)。 ## 日志从哪来 | 来源 | 位置 | 说明 | |------|------|------| | 通用增删改 | `BackendBase` 的 `create / edit / del / destroy / restore / multi` | 操作**已成功提交**后记录;失败不留痕(避免失败重试刷屏) | | 登录 / 退出 | `BackendBase::login()` / `logout()` | 登录**成功与失败都记**;失败时 `aid=0`(还不知道是谁) | | 业务补充 | `AdminLogger::write($action, $remark, $aid)` | 关键业务操作(如删除附件、清理日志)按需补充 | `action` 约定为 `controller/action`(如 `Admin/create`)或语义动作(`登录成功` / `退出登录`); `remark` 放可读摘要(如 `ID:12`)。两字段都有长度上限(100 / 255),超长自动截断。 ```php use ywxapp\library\AdminLogger; AdminLogger::write('order/refund', '订单号:20260101001,金额:39.00'); AdminLogger::login($account, true, '', $aid); // 登录成功 AdminLogger::login($account, false, '密码错误'); // 登录失败 ``` 日志写入**永不抛异常**(内部吞掉):审计功能不能反过来阻断业务。 ## 后台查看 系统管理 → **操作日志**(`app/backend/controller/Adminlog.php`,权限 `adminlog:index|delete|clean`,首次访问自动补录): - 按账号 / 昵称 / IP / 备注关键字检索,按动作类型下拉筛选,支持日期区间; - 删除选中;按保留天数清理(填 `0` = 清空,页面有二次确认)。 CLI 清理:`AdminLogger::clean($days)`,同样 `0` = 清空。