From 32d467da85a76457f21e3738f7fb8c8c67852a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sat, 7 Jun 2025 22:26:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97=E5=86=99?= =?UTF-8?q?=E5=85=A5=20+=20=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/zhangdeman/logger/BaseProvider.java | 3 +- .../cn/zhangdeman/logger/LogTypeEnum.java | 5 ++++ .../cn/zhangdeman/logger/LoggerInstance.java | 28 +++++++++++++++++++ .../logger/RequestInfoLogProvider.java | 3 +- .../logger/ResponseInfoLogProvider.java | 3 +- 5 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/main/java/cn/zhangdeman/logger/BaseProvider.java b/src/main/java/cn/zhangdeman/logger/BaseProvider.java index 6ad2a58..09f2a10 100644 --- a/src/main/java/cn/zhangdeman/logger/BaseProvider.java +++ b/src/main/java/cn/zhangdeman/logger/BaseProvider.java @@ -31,7 +31,7 @@ public abstract class BaseProvider implements JsonProvider { } // 写入公共字段 - protected void writeCommonField(RuntimeContext runtimeContext, JsonGenerator gen, String logType) throws IOException { + protected void writeCommonField(RuntimeContext runtimeContext, JsonGenerator gen, String logType, String logData) throws IOException { gen.writeStringField(RecordField.REQUEST_ID, runtimeContext.getRequestId()); gen.writeStringField(RecordField.TRACE_ID, runtimeContext.getTraceId()); gen.writeStringField(RecordField.SERVER_IP, runtimeContext.getServerIp()); @@ -42,6 +42,7 @@ public abstract class BaseProvider implements JsonProvider { gen.writeStringField(RecordField.REQUEST_CLIENT_IP, runtimeContext.getRequestInfo().getClientIp()); gen.writeNumberField(RecordField.COST, System.currentTimeMillis() - runtimeContext.getStartTimeStamp()); // 代表的是从请求开始, 到打印日志这一刻, 花费了多长时间 gen.writeStringField(RecordField.REQUEST_CONTENT_TYPE, runtimeContext.getRequestInfo().getRequestContentType() == null ? "" : runtimeContext.getRequestInfo().getRequestContentType()); + gen.writeStringField(RecordField.CONTEXT_DATA,logData); // 除了公共字段值外的其他数据, 统一放在logData中 } @Override diff --git a/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java b/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java index 11195fb..b971865 100644 --- a/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java +++ b/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java @@ -6,6 +6,11 @@ import lombok.Getter; public enum LogTypeEnum { REQUEST_INPUT("input", "请求输入信息"), REQUEST_OUTPUT("output", "请求响应信息"), + DATABASE_RECORD("database", "数据库日志记录"), + CACHE_RECORD("cache", "缓存日志记录"), + API_RECORD("api", "第三方接口请求"), + MESSAGE_RECORD("message", "消息队列日志记录"), + TASK_RECORD("task", "常驻后台任务日志"), ; private final String logType; private final String description; diff --git a/src/main/java/cn/zhangdeman/logger/LoggerInstance.java b/src/main/java/cn/zhangdeman/logger/LoggerInstance.java index 5948742..e98e528 100644 --- a/src/main/java/cn/zhangdeman/logger/LoggerInstance.java +++ b/src/main/java/cn/zhangdeman/logger/LoggerInstance.java @@ -1,4 +1,32 @@ package cn.zhangdeman.logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +// 各种日志实例获取, 配置是需要按照相关枚举值配置 public class LoggerInstance { + /** + * 请求输入日志记录实例 + */ + private static final Logger REQUEST_INPUT_LOGGER = LoggerFactory.getLogger(LogTypeEnum.REQUEST_INPUT.getLogType()); + /** + * 请求响应日志实例 + */ + private static final Logger REQUEST_OUTPUT_LOGGER = LoggerFactory.getLogger(LogTypeEnum.REQUEST_OUTPUT.getLogType()); + /** + * 数据库sql记录 + */ + private static final Logger DATABASE_RECORD_LOGGER = LoggerFactory.getLogger(LogTypeEnum.DATABASE_RECORD.getLogType()); + /** + * 缓存记录 + */ + private static final Logger CACHE_RECORD_LOGGER = LoggerFactory.getLogger(LogTypeEnum.CACHE_RECORD.getLogType()); + /** + * 消息队列记录 + */ + private static final Logger MESSAGE_RECORD_LOGGER = LoggerFactory.getLogger(LogTypeEnum.MESSAGE_RECORD.getLogType()); + /** + * 常驻后台任务日志记录 + */ + private static final Logger TASK_RECORD_LOGGER = LoggerFactory.getLogger(LogTypeEnum.TASK_RECORD.getLogType()); } diff --git a/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java b/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java index 4fe4d9b..91428c8 100644 --- a/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java +++ b/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java @@ -17,7 +17,6 @@ public class RequestInfoLogProvider extends BaseProvider { return; } // 请求输入日志 - writeCommonField(runtimeContext, gen, LogTypeEnum.REQUEST_INPUT.getLogType()); - gen.writeStringField(RecordField.REQUEST_INFO, runtimeContext.getRequestInfo().toString()); + writeCommonField(runtimeContext, gen, LogTypeEnum.REQUEST_INPUT.getLogType(), runtimeContext.getRequestInfo().toString()); } } diff --git a/src/main/java/cn/zhangdeman/logger/ResponseInfoLogProvider.java b/src/main/java/cn/zhangdeman/logger/ResponseInfoLogProvider.java index 6fc6c0b..2718bae 100644 --- a/src/main/java/cn/zhangdeman/logger/ResponseInfoLogProvider.java +++ b/src/main/java/cn/zhangdeman/logger/ResponseInfoLogProvider.java @@ -17,7 +17,6 @@ public class ResponseInfoLogProvider extends BaseProvider { return; } // 请求输入日志 - writeCommonField(runtimeContext, gen, LogTypeEnum.REQUEST_OUTPUT.getLogType()); - gen.writeStringField(RecordField.RESPONSE_INFO, runtimeContext.getResponse().toString()); + writeCommonField(runtimeContext, gen, LogTypeEnum.REQUEST_OUTPUT.getLogType(), runtimeContext.getResponse().toString()); } }