- 新增访问/登录日志表与拦截器,登录成功/失败均记录,接口访问同时输出到应用日志 - 新增 /api/log/* 查询与 SSE 实时推送,运行日志默认最近 1 小时并支持日期/级别/关键字筛选 - 新增日志定时清理,保留天数可配置(默认 30 天,0 为永久保留) - 前端新增系统日志页(独立 URL 子路径、标签偏好记忆),入口位于顶部用户下拉菜单 - 实体到视图对象的属性拷贝改用 MapStruct 编译期生成
60 lines
1.7 KiB
Java
60 lines
1.7 KiB
Java
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);
|
|
}
|