From ed6a9a5d78a9da599d815401669e042a114ec3c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 6 Jun 2025 21:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E7=BB=84=E7=BB=87=E5=8C=85?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{filter => consts}/HttpField.java | 2 +- .../{filter => consts}/LogField.java | 2 +- .../{filter => consts}/RecordField.java | 5 ++- .../{filter => context}/Request.java | 3 +- .../{filter => context}/Response.java | 9 ++++- .../{filter => context}/RuntimeContext.java | 3 +- src/main/java/cn/zhangdeman/filter/Main.java | 7 ---- .../{filter => }/RequestInitFilter.java | 4 ++ .../java/cn/zhangdeman/logger/LogData.java | 40 +++++++++++++++++++ 9 files changed, 62 insertions(+), 13 deletions(-) rename src/main/java/cn/zhangdeman/{filter => consts}/HttpField.java (93%) rename src/main/java/cn/zhangdeman/{filter => consts}/LogField.java (97%) rename src/main/java/cn/zhangdeman/{filter => consts}/RecordField.java (95%) rename src/main/java/cn/zhangdeman/{filter => context}/Request.java (95%) rename src/main/java/cn/zhangdeman/{filter => context}/Response.java (82%) rename src/main/java/cn/zhangdeman/{filter => context}/RuntimeContext.java (96%) delete mode 100644 src/main/java/cn/zhangdeman/filter/Main.java rename src/main/java/cn/zhangdeman/filter/{filter => }/RequestInitFilter.java (97%) create mode 100644 src/main/java/cn/zhangdeman/logger/LogData.java diff --git a/src/main/java/cn/zhangdeman/filter/HttpField.java b/src/main/java/cn/zhangdeman/consts/HttpField.java similarity index 93% rename from src/main/java/cn/zhangdeman/filter/HttpField.java rename to src/main/java/cn/zhangdeman/consts/HttpField.java index e25465a..0ac4a64 100644 --- a/src/main/java/cn/zhangdeman/filter/HttpField.java +++ b/src/main/java/cn/zhangdeman/consts/HttpField.java @@ -1,4 +1,4 @@ -package cn.zhangdeman.filter; +package cn.zhangdeman.consts; // http 一些枚举key public class HttpField { diff --git a/src/main/java/cn/zhangdeman/filter/LogField.java b/src/main/java/cn/zhangdeman/consts/LogField.java similarity index 97% rename from src/main/java/cn/zhangdeman/filter/LogField.java rename to src/main/java/cn/zhangdeman/consts/LogField.java index cec5bdc..e243ece 100644 --- a/src/main/java/cn/zhangdeman/filter/LogField.java +++ b/src/main/java/cn/zhangdeman/consts/LogField.java @@ -1,4 +1,4 @@ -package cn.zhangdeman.filter; +package cn.zhangdeman.consts; // 日志相关数据的枚举值 public class LogField { diff --git a/src/main/java/cn/zhangdeman/filter/RecordField.java b/src/main/java/cn/zhangdeman/consts/RecordField.java similarity index 95% rename from src/main/java/cn/zhangdeman/filter/RecordField.java rename to src/main/java/cn/zhangdeman/consts/RecordField.java index 21f765c..9950766 100644 --- a/src/main/java/cn/zhangdeman/filter/RecordField.java +++ b/src/main/java/cn/zhangdeman/consts/RecordField.java @@ -1,4 +1,4 @@ -package cn.zhangdeman.filter; +package cn.zhangdeman.consts; // 记录的各种字段枚举值 public class RecordField { @@ -34,4 +34,7 @@ public class RecordField { public static final String RESPONSE_HTTP_CODE = "http_code"; // 苍蝇状态码,默认200 public static final String RESPONSE_HEADER = "header"; // 响应header public static final String RESPONSE_COOKIE = "cookie"; // 响应header + + + public static final String LOGGER_TYPE = "log_type"; // 日志类型 } diff --git a/src/main/java/cn/zhangdeman/filter/Request.java b/src/main/java/cn/zhangdeman/context/Request.java similarity index 95% rename from src/main/java/cn/zhangdeman/filter/Request.java rename to src/main/java/cn/zhangdeman/context/Request.java index 3c25e1c..1bb70ab 100644 --- a/src/main/java/cn/zhangdeman/filter/Request.java +++ b/src/main/java/cn/zhangdeman/context/Request.java @@ -1,5 +1,6 @@ -package cn.zhangdeman.filter; +package cn.zhangdeman.context; +import cn.zhangdeman.consts.RecordField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/cn/zhangdeman/filter/Response.java b/src/main/java/cn/zhangdeman/context/Response.java similarity index 82% rename from src/main/java/cn/zhangdeman/filter/Response.java rename to src/main/java/cn/zhangdeman/context/Response.java index cb0e54f..a0ccd6f 100644 --- a/src/main/java/cn/zhangdeman/filter/Response.java +++ b/src/main/java/cn/zhangdeman/context/Response.java @@ -1,5 +1,6 @@ -package cn.zhangdeman.filter; +package cn.zhangdeman.context; +import cn.zhangdeman.consts.RecordField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; @@ -15,6 +16,12 @@ import java.util.Map; @Setter @JsonIgnoreProperties(ignoreUnknown = true) // 忽略未知属性字段 public class Response { + @JsonProperty(RecordField.REQUEST_ID) + private String requestId; // 本次请求request id + @JsonProperty(RecordField.TRACE_ID) + private String traceId; // 全局trace id + @JsonProperty(RecordField.COST) + private Long cost; // 请求耗时 @JsonProperty(RecordField.RESPONSE_CODE) private String code; // 响应业务状态码 @JsonProperty(RecordField.RESPONSE_MESSAGE) diff --git a/src/main/java/cn/zhangdeman/filter/RuntimeContext.java b/src/main/java/cn/zhangdeman/context/RuntimeContext.java similarity index 96% rename from src/main/java/cn/zhangdeman/filter/RuntimeContext.java rename to src/main/java/cn/zhangdeman/context/RuntimeContext.java index a654311..062f3e3 100644 --- a/src/main/java/cn/zhangdeman/filter/RuntimeContext.java +++ b/src/main/java/cn/zhangdeman/context/RuntimeContext.java @@ -1,5 +1,6 @@ -package cn.zhangdeman.filter; +package cn.zhangdeman.context; +import cn.zhangdeman.consts.RecordField; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonProcessingException; diff --git a/src/main/java/cn/zhangdeman/filter/Main.java b/src/main/java/cn/zhangdeman/filter/Main.java deleted file mode 100644 index 5c853b6..0000000 --- a/src/main/java/cn/zhangdeman/filter/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.zhangdeman.filter; - - -public class Main { - public static void main(String[] args) { - } -} \ No newline at end of file diff --git a/src/main/java/cn/zhangdeman/filter/filter/RequestInitFilter.java b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java similarity index 97% rename from src/main/java/cn/zhangdeman/filter/filter/RequestInitFilter.java rename to src/main/java/cn/zhangdeman/filter/RequestInitFilter.java index d182740..5befa52 100644 --- a/src/main/java/cn/zhangdeman/filter/filter/RequestInitFilter.java +++ b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java @@ -1,6 +1,10 @@ package cn.zhangdeman.filter; +import cn.zhangdeman.consts.RecordField; +import cn.zhangdeman.context.Request; +import cn.zhangdeman.context.Response; +import cn.zhangdeman.context.RuntimeContext; import jakarta.servlet.FilterChain; import jakarta.servlet.FilterConfig; import jakarta.servlet.ServletException; diff --git a/src/main/java/cn/zhangdeman/logger/LogData.java b/src/main/java/cn/zhangdeman/logger/LogData.java new file mode 100644 index 0000000..c4e7720 --- /dev/null +++ b/src/main/java/cn/zhangdeman/logger/LogData.java @@ -0,0 +1,40 @@ +package cn.zhangdeman.logger; + +import cn.zhangdeman.consts.RecordField; +import cn.zhangdeman.context.Request; +import cn.zhangdeman.context.Response; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +// 日志数据结构 +@Setter +@Getter +@JsonIgnoreProperties(ignoreUnknown = true) // 忽略未知属性字段 +public class LogData { + @JsonProperty(RecordField.LOGGER_TYPE) + private String LogType; + @JsonProperty(RecordField.REQUEST_ID) + private String requestId; // 本次请求request id + @JsonProperty(RecordField.COST) + private Long cost; // 请求耗时 + @JsonProperty(RecordField.SERVER_IP) + private String serverIp; // 服务器Ip + @JsonProperty(RecordField.SERVER_HOSTNAME) + private String serverHostname; // 服务器hostname + @JsonProperty(RecordField.FINISH_TIMESTAMP) + private Long finishTimeStamp; // 完成请求时间 + @JsonProperty(RecordField.TRACE_ID) + private String traceId; // 全局trace id + @JsonProperty(RecordField.START_TIMESTAMP) + private Long startTimeStamp; // 开始请求时间 + @JsonProperty(RecordField.CONTEXT_DATA) + private Map logData; // 本条日志的上下文信息 + @JsonProperty(RecordField.REQUEST_INFO) + private Request requestInfo;// 请求信息 + @JsonProperty(RecordField.RESPONSE_INFO) + private Response responseInfo; // 响应信息 +}