feat: 新增系统日志记录、查看与自动清理,VO 转换改用 MapStruct

- 新增访问/登录日志表与拦截器,登录成功/失败均记录,接口访问同时输出到应用日志
- 新增 /api/log/* 查询与 SSE 实时推送,运行日志默认最近 1 小时并支持日期/级别/关键字筛选
- 新增日志定时清理,保留天数可配置(默认 30 天,0 为永久保留)
- 前端新增系统日志页(独立 URL 子路径、标签偏好记忆),入口位于顶部用户下拉菜单
- 实体到视图对象的属性拷贝改用 MapStruct 编译期生成
This commit is contained in:
2026-09-18 17:18:03 +08:00
parent e49b6b7b81
commit e82e0a4ef9
38 changed files with 2464 additions and 153 deletions
+14
View File
@@ -63,6 +63,20 @@ const router = createRouter({
name: 'AiUsage',
component: () => import('../views/AiUsage.vue'), // 模型使用情况
},
{
path: 'logs',
// 跳转到上次访问的日志标签页,无记录时默认访问日志
redirect: () => {
const tabs = ['http', 'login', 'app']
const saved = typeof localStorage !== 'undefined' ? localStorage.getItem('logs.tab') : null
return `/logs/${saved && tabs.includes(saved) ? saved : 'http'}`
},
},
{
path: 'logs/:tab(http|login|app)',
name: 'Logs',
component: () => import('../views/Logs.vue'), // 系统日志(访问日志/登录日志/运行日志)
},
],
},
],