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
|
||||
+1
-1
@@ -6,7 +6,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "xyz.thewhitedog9487"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
|
||||
@@ -18,7 +18,6 @@ public class LogClientInfo extends OncePerRequestFilter {
|
||||
@Override
|
||||
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("请求ID:{}", request.getRequestId());
|
||||
if ( request.getHeader("CF-Connecting-IP".toLowerCase() ) instanceof String IP ) {
|
||||
/*
|
||||
↑ 如果成功完成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:
|
||||
enabled: true
|
||||
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