🧾 日志与审计
SunAdmin 提供两类后台可查看的日志:操作日志和系统日志。操作日志用于审计后台管理行为;系统日志用于查看 Laravel 运行时错误、异常和调试信息。
后台入口:
text
系统维护 / 日志操作日志
操作日志记录后台管理员对管理端接口发起的写操作,例如新增、编辑、删除、状态切换、清理缓存等。
操作日志写入数据表:
text
system_operation_logs记录字段包括:
| 字段 | 说明 |
|---|---|
admin_id | 管理员 ID |
admin_name / admin_account | 管理员名称与账号 |
method / path / route | 请求方式、路径和路由 |
ip / user_agent | 请求来源信息 |
request_data | 请求参数,密码、Token、密钥、证书等字段会脱敏 |
response_code / response_message | 接口响应码和消息 |
status | 1 成功,0 失败 |
duration_ms | 接口耗时 |
操作日志默认只记录后台 adminapi 的非 GET 请求,避免列表、详情等读取接口产生过多审计数据。
系统日志
系统日志读取 Laravel 日志文件:
text
storage/logs/*.log项目默认按日写入日志,配置为:
env
LOG_CHANNEL=daily
LOG_STACK=daily
LOG_DAILY_DAYS=14按日记录后,日志文件通常类似:
text
storage/logs/laravel-2026-05-16.log系统日志页面会自动扫描 storage/logs 下的 .log 文件。左侧选择日志文件,右侧查看日志内容。
日志展示
系统日志按条目展示,每条日志包含:
- 日志级别,例如
ERROR、WARNING、INFO。 - 记录时间。
- 运行环境。
- 错误摘要。
默认只显示日志摘要,并隐藏 [stacktrace] 后面的调用堆栈。需要排查完整调用链时,可以打开“显示堆栈”开关。
调用堆栈用于定位异常从哪个控制器、服务、Dao 或框架方法一路触发出来。日常排查可先看摘要,定位困难时再展开堆栈。
清空与删除
系统日志支持两种维护动作:
| 操作 | 说明 |
|---|---|
| 清空 | 清空当前日志文件内容,保留文件本身 |
| 删除 | 删除当前日志文件,适合按日清理某一天日志 |
按日日志模式下,删除某个 laravel-YYYY-MM-DD.log 文件只会删除对应日期的日志。新的日志写入时 Laravel 会按当前日期重新生成日志文件。
生产环境注意事项
生产环境修改 .env 日志配置后,需要刷新 Laravel 配置缓存:
bash
php artisan optimize:clear
php artisan config:cache如果服务器开启了权限隔离,需要确保 PHP 运行用户对 storage/logs 目录具有读写权限,否则后台无法读取、清空或删除日志文件。
常见问题
| 问题 | 排查 |
|---|---|
| 后台看不到操作日志 | 是否已执行 php artisan migrate 创建 system_operation_logs 表 |
系统日志仍写入 laravel.log | 检查 .env 是否为 LOG_CHANNEL=daily,配置缓存是否已刷新 |
| 系统日志无法删除 | 检查 storage/logs 文件权限和 PHP 运行用户 |
| 日志内容很长 | 默认查看摘要,需要完整调用链时打开“显示堆栈” |
