Skip to content

审计日志模块

1003 words
5 min

INFO

当前模块聚合到BasicManagement模块,包含:

  • 账户模块
  • 权限模块
  • 设置模块
  • 功能模块
  • 租户模块
  • 调度模块
  • 审计日志模块

所以在使用以上功能,只需要集成BasicManagement模块(默认已集成)

概述

  • 审计日志模块(Audit Log Module)是框架安全管控体系的核心业务模块,基于 ABP 审计日志框架构建,提供系统操作全链路的日志记录、存储、查询与分析能力,实现对用户操作、系统行为的追溯与审计,保障系统操作合规性,助力安全事件排查与责任界定。

核心功能

操作日志记录

自动或手动记录系统关键操作行为,核心记录范围包括:

  • 用户操作记录:记录用户登录/登出、账户信息修改、权限分配、数据增删改查等核心业务操作;
  • 系统行为记录:记录系统启动/关闭、配置变更、模块加载、异常抛出等系统级行为;
  • 请求日志记录:记录 HTTP 请求详情(请求地址、请求方法、请求参数、响应状态、响应时间、客户端 IP、浏览器信息等);

日志核心信息存储

规范日志数据存储结构,确保审计追溯的完整性,核心存储信息包括:

  • 操作主体信息:操作用户ID、用户名、租户ID、租户名称(多租户场景);
  • 操作上下文信息:操作时间、客户端IP地址、客户端名称(浏览器/应用)、操作地点(IP解析);
  • 操作内容信息:操作类型、操作描述、涉及的业务对象(如用户ID、订单ID)、操作前后数据对比;
  • 操作结果信息:操作状态(成功/失败)、错误信息(操作失败时)、耗时(接口/操作执行时长)。

日志查询与筛选

提供多维度的日志查询能力,支持精准定位目标日志,核心查询方式包括:

  • 基础条件查询:按操作时间范围、操作用户、租户、操作类型、操作状态等基础条件筛选;
  • 高级条件查询:按请求地址、客户端IP、业务对象ID、错误关键词等精准查询;
  • 日志排序:支持按操作时间、耗时等字段升序/降序排序;
  • 分页查询:支持分页加载大量日志数据,提升查询性能与体验。

数据库配置

  • 配置数据库连接字符串,在 appsettings.json 中设置目标数据库连接信息(以 MySQL 为例)
json


"ConnectionStrings": {
    "Default": "Server=localhost;Database=YourDbName;Uid=root;Pwd=yourPassword;"
}
  • 不使用Default数据库连接字符串(独立存储审计日志数据,提升主库性能)
json


"ConnectionStrings": {
    "AbpAuditLogging": "Server=localhost;Database=YourAuditLogDbName;Uid=root;Pwd=yourPassword;"
}

自定义表前缀

  • 通过配置 AbpAuditLoggingDbProperties.DbTablePrefix 自定义数据表前缀,例如:
csharp

public override void PreConfigureServices(ServiceConfigurationContext context)
{
    // 自定义表前缀为 "Sys_",生成表如 Sys_AuditLogs、Sys_AuditLogActions
    AbpAuditLoggingDbProperties.DbTablePrefix = "Sys_";
}

数据表说明

表名核心作用关键字段说明
AbpAuditLogs审计日志主表,存储操作主体与上下文核心信息Id(日志唯一标识)、TenantId(租户ID)、UserId(操作用户ID)、UserName(用户名)、ClientIpAddress(客户端IP)、ClientName(客户端名称)、BrowserInfo(浏览器信息)、ExecutionTime(操作时间)、ExecutionDuration(耗时,毫秒)、Status(操作状态:Success/Failed)、Exception(异常信息)
AbpAuditLogActions审计日志操作详情表,存储具体操作内容(一对多关联主表)Id、AuditLogId(关联AbpAuditLogs.Id)、ServiceName(服务名称)、MethodName(方法名称)、Parameters(请求参数)、ActionName(操作名称)、EntityId(业务对象ID)、EntityTypeFullName(业务对象类型)
AbpEntityChanges实体变更日志表,存储业务实体数据变更记录Id、TenantId、UserId、UserName、ChangeTime(变更时间)、EntityId(实体ID)、EntityTypeFullName(实体类型)、ChangeType(变更类型:Create/Update/Delete)、AuditLogId(关联审计日志主表,可为空)
AbpEntityPropertyChanges实体属性变更表,存储实体具体字段的变更前后值(一对多关联实体变更表)Id、EntityChangeId(关联AbpEntityChanges.Id)、PropertyName(属性名称)、PropertyTypeFullName(属性类型)、OriginalValue(变更前值)、NewValue(变更后值)

如有转载或 CV 的请标注本站原文地址