mirror of
https://github.com/continew-org/continew-starter.git
synced 2025-12-17 08:57:10 +08:00
revert(log/httptrace-pro): 请求 URI => 请求 URL,记录协议、域名信息(保持尽可能完整)
This commit is contained in:
@@ -43,9 +43,9 @@ public class LogRequest {
|
|||||||
private String method;
|
private String method;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求 URI
|
* 请求 URL
|
||||||
*/
|
*/
|
||||||
private URI uri;
|
private URI url;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IP
|
* IP
|
||||||
@@ -84,7 +84,7 @@ public class LogRequest {
|
|||||||
|
|
||||||
public LogRequest(RecordableHttpRequest request, Set<Include> includes) {
|
public LogRequest(RecordableHttpRequest request, Set<Include> includes) {
|
||||||
this.method = request.getMethod();
|
this.method = request.getMethod();
|
||||||
this.uri = request.getUri();
|
this.url = request.getUrl();
|
||||||
this.ip = request.getIp();
|
this.ip = request.getIp();
|
||||||
this.headers = (includes.contains(Include.REQUEST_HEADERS)) ? request.getHeaders() : null;
|
this.headers = (includes.contains(Include.REQUEST_HEADERS)) ? request.getHeaders() : null;
|
||||||
if (includes.contains(Include.REQUEST_BODY)) {
|
if (includes.contains(Include.REQUEST_BODY)) {
|
||||||
|
|||||||
@@ -39,11 +39,11 @@ public interface RecordableHttpRequest {
|
|||||||
String getMethod();
|
String getMethod();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取 URI
|
* 获取 URL
|
||||||
*
|
*
|
||||||
* @return URI
|
* @return URL
|
||||||
*/
|
*/
|
||||||
URI getUri();
|
URI getUrl();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取 IP
|
* 获取 IP
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import top.charles7c.continew.starter.log.common.annotation.Log;
|
|||||||
import top.charles7c.continew.starter.log.common.dao.LogDao;
|
import top.charles7c.continew.starter.log.common.dao.LogDao;
|
||||||
import top.charles7c.continew.starter.log.common.enums.Include;
|
import top.charles7c.continew.starter.log.common.enums.Include;
|
||||||
import top.charles7c.continew.starter.log.common.model.LogRecord;
|
import top.charles7c.continew.starter.log.common.model.LogRecord;
|
||||||
import top.charles7c.continew.starter.log.common.model.LogRequest;
|
|
||||||
import top.charles7c.continew.starter.log.common.model.LogResponse;
|
import top.charles7c.continew.starter.log.common.model.LogResponse;
|
||||||
import top.charles7c.continew.starter.log.httptracepro.autoconfigure.LogProperties;
|
import top.charles7c.continew.starter.log.httptracepro.autoconfigure.LogProperties;
|
||||||
|
|
||||||
@@ -57,11 +56,10 @@ public class LogInterceptor implements HandlerInterceptor {
|
|||||||
@NonNull Object handler) {
|
@NonNull Object handler) {
|
||||||
Clock timestamp = Clock.systemUTC();
|
Clock timestamp = Clock.systemUTC();
|
||||||
if (this.isRequestRecord(handler)) {
|
if (this.isRequestRecord(handler)) {
|
||||||
RecordableServletHttpRequest sourceRequest = new RecordableServletHttpRequest(request);
|
|
||||||
if (Boolean.TRUE.equals(properties.getIsPrint())) {
|
if (Boolean.TRUE.equals(properties.getIsPrint())) {
|
||||||
log.info("[{}] {}", sourceRequest.getMethod(), sourceRequest.getUri());
|
log.info("[{}] {}", request.getMethod(), request.getRequestURI());
|
||||||
}
|
}
|
||||||
LogRecord.Started startedLogRecord = LogRecord.start(timestamp, sourceRequest);
|
LogRecord.Started startedLogRecord = LogRecord.start(timestamp, new RecordableServletHttpRequest(request));
|
||||||
timestampTtl.set(startedLogRecord);
|
timestampTtl.set(startedLogRecord);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -88,9 +86,8 @@ public class LogInterceptor implements HandlerInterceptor {
|
|||||||
this.logModule(finishedLogRecord, handlerMethod);
|
this.logModule(finishedLogRecord, handlerMethod);
|
||||||
}
|
}
|
||||||
if (Boolean.TRUE.equals(properties.getIsPrint())) {
|
if (Boolean.TRUE.equals(properties.getIsPrint())) {
|
||||||
LogRequest logRequest = finishedLogRecord.getRequest();
|
|
||||||
LogResponse logResponse = finishedLogRecord.getResponse();
|
LogResponse logResponse = finishedLogRecord.getResponse();
|
||||||
log.info("[{}] {} {} {}ms", logRequest.getMethod(), logRequest.getUri(), logResponse.getStatus(), finishedLogRecord.getTimeTaken().toMillis());
|
log.info("[{}] {} {} {}ms", request.getMethod(), request.getRequestURI(), logResponse.getStatus(), finishedLogRecord.getTimeTaken().toMillis());
|
||||||
}
|
}
|
||||||
dao.add(finishedLogRecord);
|
dao.add(finishedLogRecord);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
|||||||
@@ -51,16 +51,18 @@ public final class RecordableServletHttpRequest implements RecordableHttpRequest
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public URI getUri() {
|
public URI getUrl() {
|
||||||
String queryString = request.getQueryString();
|
String queryString = request.getQueryString();
|
||||||
if (StrUtil.isBlank(queryString)) {
|
if (StrUtil.isBlank(queryString)) {
|
||||||
return URI.create(request.getRequestURI());
|
return URI.create(request.getRequestURL().toString());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return new URI(this.appendQueryString(queryString));
|
StringBuffer urlBuffer = this.appendQueryString(queryString);
|
||||||
|
return new URI(urlBuffer.toString());
|
||||||
} catch (URISyntaxException e) {
|
} catch (URISyntaxException e) {
|
||||||
String encoded = UriUtils.encodeQuery(queryString, StandardCharsets.UTF_8);
|
String encoded = UriUtils.encodeQuery(queryString, StandardCharsets.UTF_8);
|
||||||
return URI.create(this.appendQueryString(encoded));
|
StringBuffer urlBuffer = this.appendQueryString(encoded);
|
||||||
|
return URI.create(urlBuffer.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +93,7 @@ public final class RecordableServletHttpRequest implements RecordableHttpRequest
|
|||||||
: Collections.unmodifiableMap(request.getParameterMap());
|
: Collections.unmodifiableMap(request.getParameterMap());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String appendQueryString(String queryString) {
|
private StringBuffer appendQueryString(String queryString) {
|
||||||
return request.getRequestURI() + StringConstants.QUESTION_MARK + queryString;
|
return request.getRequestURL().append(StringConstants.QUESTION_MARK).append(queryString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user