Skip to content

日志管理 ​

ArchForge 在数据库里保存两类审计日志:带注解的管理端操作产生的操作日志,以及每次管理端登录尝试产生的登录日志。

操作日志 ​

如何写入 ​

带 @Log 注解的接口会被 LogAspect 包裹:记录调用人、模块、摘要、客户端 IP 及其归属地、操作系统与浏览器,以及调用是否成功。记录以事件形式发布,在事务提交后异步保存(logTaskExecutor),所以记日志既不会拖慢请求,也不会让请求失败。

数据模型——SysOperLog(sys_oper_log) ​

字段类型描述
operIdLong主键
usernameString操作人
moduleString模块(取自 @Log 或类名)
summaryString操作摘要(取自 @Log 或方法名)
ipString客户端 IP(只信任可信代理,见配置管理)
addressStringIP 归属地
systemNameString操作系统
browserString浏览器
statusInteger1 成功,0 失败
operatingTimeDateTime操作时间

API 接口 ​

OperationLogController(server-admin):

方法接口路径权限描述
POST/admin/operation-logmonitor:operlog:list分页查询
POST/admin/operation-log/deletemonitor:operlog:remove删除选中记录
POST/admin/operation-log/clearmonitor:operlog:remove删除全部记录

登录日志 ​

如何写入 ​

LoginService 为每次管理端登录尝试写一条记录——成功与失败都写,原因放在 behavior。

数据模型——SysLoginLog(sys_login_log) ​

字段类型描述
infoIdLong主键
usernameString登录名
ipString客户端 IP
addressStringIP 归属地
systemNameString操作系统
browserString浏览器
statusInteger1 登录成功,0 登录失败(另定义了 2 退出、3 注册)
behaviorString说明,如"登录成功" / "登录失败"
loginTimeDateTime登录时间

API 接口 ​

LoginLogController(server-admin):

方法接口路径权限描述
POST/admin/login-logmonitor:logininfor:list分页查询
POST/admin/login-log/deletemonitor:logininfor:remove删除选中记录
POST/admin/login-log/clearmonitor:logininfor:remove删除全部记录

浏览器、系统与归属地 ​

  • User-Agent 解析使用 Yauaa(UserAgentUtil)。
  • IP 归属地:内网地址显示"内网IP";公网地址先查离线的 ip2region xdb 文件(首次使用时下载并缓存),查不到再走在线查询(whois.pconline.com.cn)。

日志保留 ​

日志会一直保留,直到有人删除:逐条删除、清空全部,或者写一个定时任务删除旧数据。系统不会自动清理。

服务层 ​

SysOperLogService 与 SysLoginLogService(admin-user 的 api)——增删改查与分页查询;C 端仪表盘也用它们统计当天数量、取最新操作。

相关页面 ​

Released under the MIT License.