refactor: 适配 ContiNew Starter 日志调整

This commit is contained in:
Charles7c 2023-12-23 22:49:18 +08:00
parent 4c24aea560
commit 5a767c959a
10 changed files with 31 additions and 26 deletions

View File

@ -16,7 +16,6 @@
package top.charles7c.continew.admin.monitor.config;
import java.net.URI;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
@ -74,12 +73,8 @@ public class LogDaoLocalImpl implements LogDao {
// 请求信息
LogRequest logRequest = logRecord.getRequest();
logDO.setRequestMethod(logRequest.getMethod());
// 仅记录/xxx?xx=xx&xx=xx
URI requestUri = logRequest.getUri();
String requestQuery = requestUri.getQuery();
String requestUrl = StrUtil.isNotBlank(requestQuery)
? requestUri.getPath() + StringConstants.QUESTION_MARK + requestQuery : requestUri.getPath();
logDO.setRequestUrl(requestUrl);
String requestUri = logRequest.getUri().toString();
logDO.setRequestUri(requestUri);
Map<String, List<String>> requestHeaders = logRequest.getHeaders();
logDO.setRequestHeaders(JSONUtil.toJsonStr(requestHeaders));
String requestBody = logRequest.getBody();
@ -104,17 +99,17 @@ public class LogDaoLocalImpl implements LogDao {
logDO.setErrorMsg(result.getMsg());
}
// 操作人
if (requestUrl.startsWith(SysConstants.LOGOUT_URI)) {
if (requestUri.startsWith(SysConstants.LOGOUT_URI)) {
Long loginId = Convert.toLong(result.getData(), -1L);
logDO.setCreateUser(-1 != loginId ? loginId : null);
} else if (result.isSuccess() && requestUrl.startsWith(SysConstants.LOGIN_URI)) {
} else if (result.isSuccess() && requestUri.startsWith(SysConstants.LOGIN_URI)) {
AccountLoginReq loginReq = JSONUtil.toBean(requestBody, AccountLoginReq.class);
logDO.setCreateUser(
ExceptionUtils.exToNull(() -> userService.getByUsername(loginReq.getUsername()).getId()));
}
}
// 操作人
if (!requestUrl.startsWith(SysConstants.LOGOUT_URI) && MapUtil.isNotEmpty(requestHeaders)
if (!requestUri.startsWith(SysConstants.LOGOUT_URI) && MapUtil.isNotEmpty(requestHeaders)
&& requestHeaders.containsKey(HttpHeaders.AUTHORIZATION)) {
String authorization = requestHeaders.get(HttpHeaders.AUTHORIZATION).get(0);
String token = authorization.replace(SaManager.getConfig().getTokenPrefix() + StringConstants.SPACE,

View File

@ -57,9 +57,9 @@ public class LogDO implements Serializable {
private String module;
/**
* 请求URL
* 请求 URI
*/
private String requestUrl;
private String requestUri;
/**
* 请求方式

View File

@ -48,10 +48,10 @@ public class SystemLogDetailResp extends LogResp {
private String requestMethod;
/**
* 请求 URL
* 请求 URI
*/
@Schema(description = "请求 URL", example = "/system/dept")
private String requestUrl;
@Schema(description = "请求 URI", example = "/system/dept")
private String requestUri;
/**
* 请求头

View File

@ -48,10 +48,10 @@ public class SystemLogResp extends LogResp {
private String requestMethod;
/**
* 请求 URL
* 请求 URI
*/
@Schema(description = "请求 URL", example = "/system/dept")
private String requestUrl;
@Schema(description = "请求 URI", example = "/system/dept")
private String requestUri;
/**
* IP

View File

@ -30,7 +30,7 @@ export interface OperationLogRecord extends LogRecord {
export interface SystemLogRecord extends LogRecord {
statusCode: number;
requestMethod: string;
requestUrl: string;
requestUri: string;
timeTaken: number;
}

View File

@ -67,8 +67,8 @@
/>
<a-table-column title="请求 URI">
<template #cell="{ record }">
<span :title="decodeURIComponent(record.requestUrl)">{{
record.requestUrl.match(/([^#|\?|\n]*)(\?.*)?/)[1]
<span :title="decodeURIComponent(record.requestUri)">{{
record.requestUri.match(/([^#|\?|\n]*)(\?.*)?/)[1]
}}</span>
</template>
</a-table-column>
@ -187,11 +187,11 @@
</a-skeleton>
<span v-else>{{ systemLog.requestMethod }}</span>
</a-descriptions-item>
<a-descriptions-item label="请求 URL" :span="2">
<a-descriptions-item label="请求 URI" :span="2">
<a-skeleton v-if="loading" :animation="true">
<a-skeleton-line :rows="1" />
</a-skeleton>
<span v-else>{{ systemLog.requestUrl }}</span>
<span v-else>{{ systemLog.requestUri }}</span>
</a-descriptions-item>
<a-descriptions-item label="响应体" :span="2">
<a-skeleton v-if="loading" :animation="true">
@ -271,7 +271,7 @@
const systemLogList = ref<SystemLogRecord[]>([]);
const systemLog = ref<SystemLogDetailRecord>({
requestUrl: '',
requestUri: '',
requestMethod: '',
requestHeaders: '',
requestBody: '',

View File

@ -3,6 +3,11 @@ project:
# URL
url: http://localhost:5173
--- ### 日志配置
continew-starter.log:
# 是否打印日志,开启后可打印访问日志(类似于 Nginx access log
is-print: true
--- ### 服务器配置
server:
# HTTP 端口(默认 8080

View File

@ -5,6 +5,11 @@ project:
# 是否为生产环境
production: true
--- ### 日志配置
continew-starter.log:
# 是否打印日志,开启后可打印访问日志(类似于 Nginx access log
is-print: false
--- ### 服务器配置
server:
# HTTP 端口(默认 8080

View File

@ -28,6 +28,7 @@ logging:
## 日志配置
continew-starter.log:
enabled: true
# 包含信息
include:
- DESCRIPTION
- MODULE
@ -38,7 +39,6 @@ continew-starter.log:
- OS
- RESPONSE_HEADERS
- RESPONSE_BODY
- TIME_TAKEN
--- ### 接口文档配置
springdoc:

View File

@ -116,7 +116,7 @@ CREATE TABLE IF NOT EXISTS `sys_log` (
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`description` varchar(255) NOT NULL COMMENT '日志描述',
`module` varchar(50) NOT NULL COMMENT '所属模块',
`request_url` varchar(512) NOT NULL COMMENT '请求URL',
`request_uri` varchar(512) NOT NULL COMMENT '请求URI',
`request_method` varchar(10) NOT NULL COMMENT '请求方式',
`request_headers` text DEFAULT NULL COMMENT '请求头',
`request_body` text DEFAULT NULL COMMENT '请求体',