跳到主要内容

三级等保-日志功能

日志功能概述

JeecgBoot的日志功能满足三级等保要求,支持配置化管理。核心功能包括:

  • 用户登录/登出日志保存,保留周期至少6个月(默认永久保存)
  • 用户操作日志保存,保留周期至少6个月(默认永久保存)

三级等保 【登录日志】 相关的核心代码在后端类 : loginlog 包 三级等保 【操作日志】 相关的核心代码在后端类 : operatelog 包

登录日志

技术实现:

  • 核心类:LoginLogService
  • 存储表:t_login_log
  • 前端访问路径:菜单 → 网络安全 → 登录日志

表结构包含字段:

CREATE TABLE `t_login_log` (
`login_log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` int NOT NULL COMMENT '用户id',
`user_type` int NOT NULL COMMENT '用户类型',
`user_name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
`login_ip` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户ip',
`login_ip_region` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户ip地区',
`user_agent` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'user-agent信息',
`login_result` int NOT NULL COMMENT '登录结果:0成功 1失败 2 退出',
`remark` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`login_log_id`) USING BTREE,
KEY `customer_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1739 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='用户登录日志';

操作日志

技术实现:

  • 存储表:t_operate_log
  • 注解方式:@OperateLog(可作用于Controller类或方法)
  • 处理机制:OperateLogAspect AOP切面拦截
  • 存储方式:异步线程池写入数据库

表结构包含字段:

CREATE TABLE `t_operate_log` (
`operate_log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`operate_user_id` bigint NOT NULL COMMENT '用户id',
`operate_user_type` int NOT NULL COMMENT '用户类型',
`operate_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名称',
`module` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作模块',
`content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作内容',
`url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求路径',
`method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求方法',
`param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '请求参数',
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求ip',
`ip_region` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求ip地区',
`user_agent` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '请求user-agent',
`success_flag` tinyint DEFAULT NULL COMMENT '请求结果 0失败 1成功',
`fail_reason` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '失败原因',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`operate_log_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4432 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='操作记录';