feat: 新增系统日志记录、查看与自动清理,VO 转换改用 MapStruct
- 新增访问/登录日志表与拦截器,登录成功/失败均记录,接口访问同时输出到应用日志 - 新增 /api/log/* 查询与 SSE 实时推送,运行日志默认最近 1 小时并支持日期/级别/关键字筛选 - 新增日志定时清理,保留天数可配置(默认 30 天,0 为永久保留) - 前端新增系统日志页(独立 URL 子路径、标签偏好记忆),入口位于顶部用户下拉菜单 - 实体到视图对象的属性拷贝改用 MapStruct 编译期生成
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package cn.rosercode.finance.service;
|
||||
|
||||
import cn.rosercode.finance.common.PageResult;
|
||||
import cn.rosercode.finance.dto.LogQuery;
|
||||
import cn.rosercode.finance.entity.HttpLog;
|
||||
import cn.rosercode.finance.entity.LoginLog;
|
||||
import cn.rosercode.finance.vo.AppLogVO;
|
||||
import cn.rosercode.finance.vo.HttpLogVO;
|
||||
import cn.rosercode.finance.vo.LoginLogVO;
|
||||
|
||||
/**
|
||||
* 日志服务接口,负责访问日志与登录日志的写入、分页查询以及应用运行日志的读取。
|
||||
*
|
||||
* @date 2026-09-18 16:53:17
|
||||
*/
|
||||
public interface LogService {
|
||||
|
||||
/**
|
||||
* 记录一条 HTTP 访问日志。
|
||||
*
|
||||
* @param httpLog 访问日志实体
|
||||
*/
|
||||
void recordHttpLog(HttpLog httpLog);
|
||||
|
||||
/**
|
||||
* 记录一条登录日志。
|
||||
*
|
||||
* @param loginLog 登录日志实体
|
||||
*/
|
||||
void recordLoginLog(LoginLog loginLog);
|
||||
|
||||
/**
|
||||
* 分页查询 HTTP 访问日志。
|
||||
*
|
||||
* @param query 查询条件
|
||||
* @return 分页后的访问日志
|
||||
*/
|
||||
PageResult<HttpLogVO> pageHttpLogs(LogQuery query);
|
||||
|
||||
/**
|
||||
* 分页查询登录日志。
|
||||
*
|
||||
* @param query 查询条件
|
||||
* @return 分页后的登录日志
|
||||
*/
|
||||
PageResult<LoginLogVO> pageLoginLogs(LogQuery query);
|
||||
|
||||
/**
|
||||
* 读取应用运行日志文件内容。
|
||||
*
|
||||
* @param date 日志日期(yyyy-MM-dd),为空表示当前日志文件
|
||||
* @param level 日志级别过滤,为空表示全部
|
||||
* @param keyword 关键字过滤,为空表示全部
|
||||
* @param lines 返回的最大行数
|
||||
* @param since 起始时间戳(epoch 毫秒),为空表示不限制
|
||||
* @return 运行日志视图对象
|
||||
*/
|
||||
AppLogVO readAppLog(String date, String level, String keyword, int lines, Long since);
|
||||
}
|
||||
Reference in New Issue
Block a user