三级等保-日志功能
日志功能概述
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类或方法) - 处理机制:
OperateLogAspectAOP切面拦截 - 存储方式:异步线程池写入数据库
表结构包含字段:
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='操作记录';