日志表
引用文件
目录
简介
本文件系统性梳理系统日志相关表结构与设计要点,覆盖操作日志表(system_operate_log)、登录日志表(system_login_log)、API 访问日志表(infra_api_access_log)以及错误日志相关表(infra_api_error_log)。内容包括:
- 核心字段定义、数据类型与业务含义
- 日志级别、操作类型、请求参数、响应结果等字段的设计考量
- 存储策略、查询优化与归档机制建议
- 典型分析场景与查询示例
- 系统监控与安全审计的应用方案
项目结构
日志相关表在多数据库方言中均有实现,主要分布在以下 SQL 文件中:
- MySQL 方言:infra.sql(API 访问日志)、system.sql(系统字典等基础表)
- PostgreSQL 方言:ruoyi-vue-pro.sql(操作日志、登录日志等)
- SQLServer 方言:ruoyi-vue-pro.sql(操作日志 、登录日志等)
- Oracle/Kingbase/openGauss 方言:ruoyi-vue-pro.sql(操作日志、登录日志等)
- DM8 方言:ruoyi-vue-pro-dm8.sql(登录日志等)
图表来源
- infra.sql
- ruoyi-vue-pro.sql(MySQL)
- ruoyi-vue-pro.sql(PostgreSQL)
- ruoyi-vue-pro.sql(SQLServer)
- ruoyi-vue-pro.sql(Oracle)
- ruoyi-vue-pro.sql(Kingbase)
- ruoyi-vue-pro.sql(openGauss)
- ruoyi-vue-pro-dm8.sql
章节来源
核心组件
本节聚焦三类日志表:操作日志、登录日志、API 访问日志,并给出字段定义与业务含义。
-
操作日志表(system_operate_log)
- 作用:记录用户对业务对象的操作行为,便于审计与追踪
- 关键字段:
- id:日志主键
- trace_id:链路追踪编号
- user_id/user_type:用户标识与类型
- type/sub_type:操作模块类型与具体操作名
- biz_id:操作数据模块编号
- action/extra:操作 内容与扩展字段
- request_method/request_url:请求方法与地址
- user_ip/user_agent:用户 IP 与浏览器 UA
- create_time/update_time:创建与更新时间
- tenant_id:租户编号
- 设计要点:
- 通过 type/sub_type 实现“模块-动作”的两级分类,便于统计与筛选
- extra 用于存放结构化扩展信息,如操作前后的数据快照
- request_* 字段便于定位问题与复现
-
登录日志表(system_login_log)
- 作用:记录用户登录/登出行为,支撑安全审计
- 关键字段:
- id/log_type:访问 ID 与日志类型
- trace_id:链路追踪编号
- user_id/user_type/username:用户标识
- result:登录结果(成功/失败原因)
- user_ip/user_agent:用户 IP 与 UA
- create_time/update_time:创建与更新时间
- tenant_id:租户编号
- 设计要点:
- result 字段映射系统字典(如登录结果枚举),便于统一展示与统计
- 与系统字典表配合,实现结果码到文案的解耦
-
API 访问日志表(infra_api_access_log)
- 作用:记录 API 请求的完整生命周期,便于性能分析与问题定位
- 关键字段:
- id:日志主键
- trace_id:链路追踪编号
- user_id/user_type/application_name:用户标识、类型与应用名
- request_method/request_url/request_params/response_body:请求与响应
- user_ip/user_agent:用户 IP 与 UA
- operate_module/operate_name/operate_type:操 作模块、名称与分类
- begin_time/end_time/duration:请求起止时间与耗时
- result_code/result_msg:结果码与提示
- create_time/update_time:创建与更新时间
- tenant_id:租户编号
- 设计要点:
- duration 字段用于性能分析与慢调用识别
- request_params/response_body 为调试与取证提供依据
- idx_create_time 索引支持按时间维度快速检索
章节来源
- infra.sql
- ruoyi-vue-pro.sql(PostgreSQL)
- ruoyi-vue-pro.sql(SQLServer)
- ruoyi-vue-pro.sql(Oracle)
- ruoyi-vue-pro.sql(Kingbase)
- ruoyi-vue-pro.sql(openGauss)
- ruoyi-vue-pro-dm8.sql
架构概览
日志数据在系统中的流转路径如下:
- API 层:拦截请求,记录请求参数与上下文
- 业务层:执行业务逻辑,产生操作日志
- 日志层:异步写入日志表,支持批量与缓冲
- 查询层:基于索引与分区策略进行检索与分析
[此图为概念性流程图,无需图表来源]