feat: API 访问日志系统(拦截器 + 统计分析 + 管理页面)
- V6: api_access_logs 表(method/path/email/IP/status/耗时/错误) - ApiLogInterceptor: 记录所有 /api/v1/** 请求,order(0) 最优先 - ApiLogController: 分页查询 + 按邮箱/路径统计(24h 窗口) - 前端 ApiLogs.vue: 筛选/统计面板/日志列表/分页 - 导航新增「访问日志」菜单项
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
-- PAR Flyway V6: API 访问日志表
|
||||
CREATE TABLE api_access_logs (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
method VARCHAR(10) NOT NULL COMMENT '请求方法',
|
||||
path VARCHAR(500) NOT NULL COMMENT '请求路径',
|
||||
email VARCHAR(255) COMMENT 'X-Email 请求头',
|
||||
client_ip VARCHAR(45) COMMENT '客户端 IP',
|
||||
user_agent VARCHAR(500) COMMENT 'User-Agent',
|
||||
status_code INT NOT NULL COMMENT 'HTTP 状态码',
|
||||
response_ms INT NOT NULL COMMENT '响应耗时(毫秒)',
|
||||
success TINYINT(1) NOT NULL COMMENT '是否成功',
|
||||
error_message VARCHAR(500) COMMENT '错误信息',
|
||||
psk_version VARCHAR(20) COMMENT 'PSK 版本号',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '请求时间',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_email (email),
|
||||
KEY idx_path (path(100)),
|
||||
KEY idx_created (created_at),
|
||||
KEY idx_success (success)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='API 访问日志表';
|
||||
Reference in New Issue
Block a user