diff --git a/src/main/java/cn/zhangdeman/logger/BaseProvider.java b/src/main/java/cn/zhangdeman/logger/BaseProvider.java index ad826ab..ccd6d0e 100644 --- a/src/main/java/cn/zhangdeman/logger/BaseProvider.java +++ b/src/main/java/cn/zhangdeman/logger/BaseProvider.java @@ -45,6 +45,11 @@ public abstract class BaseProvider implements JsonProvider { gen.writeObjectField(RecordField.CONTEXT_DATA,logData); // 除了公共字段值外的其他数据, 统一放在logData中 } + // 获取日志名称 + protected String getLoggerType(ILoggingEvent loggingEvent) { + return loggingEvent.getLoggerName(); + } + @Override public void prepareForDeferredProcessing(ILoggingEvent iLoggingEvent) { diff --git a/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java b/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java index b971865..33988f3 100644 --- a/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java +++ b/src/main/java/cn/zhangdeman/logger/LogTypeEnum.java @@ -6,6 +6,7 @@ import lombok.Getter; public enum LogTypeEnum { REQUEST_INPUT("input", "请求输入信息"), REQUEST_OUTPUT("output", "请求响应信息"), + REQUEST_BUSINESS("business", "请求业务逻辑日志"), DATABASE_RECORD("database", "数据库日志记录"), CACHE_RECORD("cache", "缓存日志记录"), API_RECORD("api", "第三方接口请求"), diff --git a/src/main/java/cn/zhangdeman/logger/LoggerInstance.java b/src/main/java/cn/zhangdeman/logger/LoggerInstance.java index f17ce30..5c279f9 100644 --- a/src/main/java/cn/zhangdeman/logger/LoggerInstance.java +++ b/src/main/java/cn/zhangdeman/logger/LoggerInstance.java @@ -13,6 +13,10 @@ public class LoggerInstance { * 请求响应日志实例 */ public static final Logger REQUEST_OUTPUT_LOGGER = LoggerFactory.getLogger(LogTypeEnum.REQUEST_OUTPUT.getLogType()); + /** + * 请求业务逻辑日志实例记录 + */ + public static final Logger REQUEST_BUSINESS_LOGGER = LoggerFactory.getLogger(LogTypeEnum.REQUEST_BUSINESS.getLogType()); /** * 数据库sql记录 */ diff --git a/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java b/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java index 26d92e5..c7318d5 100644 --- a/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java +++ b/src/main/java/cn/zhangdeman/logger/RequestInfoLogProvider.java @@ -6,6 +6,7 @@ import cn.zhangdeman.context.RuntimeContext; import com.fasterxml.jackson.core.JsonGenerator; import java.io.IOException; +import java.util.Objects; // 记录请求信息 public class RequestInfoLogProvider extends BaseProvider { @@ -16,7 +17,14 @@ public class RequestInfoLogProvider extends BaseProvider { // 非 http 请求不应该用到这个provider return; } - // 请求输入日志 - writeCommonField(runtimeContext, gen, runtimeContext.getRequestInfo()); + if (Objects.equals(getLoggerType(event), LogTypeEnum.REQUEST_INPUT.getLogType())) { + // 请求输入日志 + writeCommonField(runtimeContext, gen, runtimeContext.getRequestInfo()); + } else if (Objects.equals(getLoggerType(event), LogTypeEnum.REQUEST_OUTPUT.getLogType())) { + // 请求输出日志 + writeCommonField(runtimeContext, gen, runtimeContext.getResponse()); + } else { + System.out.println("请求信息记录器需要将日志的类型设置为: input(请求记录) 或 output(响应记录)"); + } } }