mirror of
https://github.com/TheWhiteDog9487/WebAPI.git
synced 2026-08-11 23:01:30 +08:00
日志中增加请求ID,不会再分不清楚谁是谁了
需要systemd服务的大家,坚定守住,援兵很快就到
This commit is contained in:
@@ -9,5 +9,9 @@
|
|||||||
**本项目不保证配置文件和环境变量的向后兼容!!!**
|
**本项目不保证配置文件和环境变量的向后兼容!!!**
|
||||||
**也就是说,如果你也要用的话,你可能必须在更新之后重新配置环境变量和配置文件**
|
**也就是说,如果你也要用的话,你可能必须在更新之后重新配置环境变量和配置文件**
|
||||||
|
|
||||||
|
# 下一步
|
||||||
|
- systemd服务自动安装和卸载
|
||||||
|
- Swagger自动生成API接口文档
|
||||||
|
|
||||||
# 许可授权
|
# 许可授权
|
||||||
WTFPL
|
WTFPL
|
||||||
+1
-1
@@ -6,7 +6,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "xyz.thewhitedog9487"
|
group = "xyz.thewhitedog9487"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain {
|
toolchain {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public class LogClientInfo extends OncePerRequestFilter {
|
|||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||||
log.info("接收到对于{} {} 的请求", request.getMethod(), request.getRequestURL() + ( ( request.getQueryString() == null ) ? "" : "?" + request.getQueryString() ) );
|
log.info("接收到对于{} {} 的请求", request.getMethod(), request.getRequestURL() + ( ( request.getQueryString() == null ) ? "" : "?" + request.getQueryString() ) );
|
||||||
log.info("请求ID:{}", request.getRequestId());
|
|
||||||
if ( request.getHeader("CF-Connecting-IP".toLowerCase() ) instanceof String IP ) {
|
if ( request.getHeader("CF-Connecting-IP".toLowerCase() ) instanceof String IP ) {
|
||||||
/*
|
/*
|
||||||
↑ 如果成功完成instanceof模式匹配,那么模式变量一定非空
|
↑ 如果成功完成instanceof模式匹配,那么模式变量一定非空
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package xyz.thewhitedog9487.WebAPI.Controller.Filter;
|
||||||
|
|
||||||
|
import jakarta.servlet.FilterChain;
|
||||||
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import org.slf4j.MDC;
|
||||||
|
import org.springframework.core.Ordered;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.filter.OncePerRequestFilter;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
|
// ↑ 拉高优先级,确保在日志记录之前设置MDC,不然和没设置就没有区别了
|
||||||
|
class SetMDCRequestID extends OncePerRequestFilter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||||
|
try {
|
||||||
|
MDC.put("RequestID", request.getRequestId());
|
||||||
|
filterChain.doFilter(request, response);
|
||||||
|
} finally {
|
||||||
|
// ↓ 防止内存泄漏
|
||||||
|
MDC.remove("RequestID"); } } }
|
||||||
@@ -5,4 +5,8 @@ spring:
|
|||||||
virtual:
|
virtual:
|
||||||
enabled: true
|
enabled: true
|
||||||
server:
|
server:
|
||||||
port: 36987
|
port: 36987
|
||||||
|
logging:
|
||||||
|
pattern:
|
||||||
|
level: "%5p %X{RequestID}"
|
||||||
|
# https://docs.spring.io/spring-boot/reference/features/logging.html#features.logging.custom-log-configuration
|
||||||
Reference in New Issue
Block a user