diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/producing/ProducingHttpLogProperties.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/producing/ProducingHttpLogProperties.java new file mode 100644 index 000000000..d45a98ece --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/producing/ProducingHttpLogProperties.java @@ -0,0 +1,22 @@ +package com.cf.imes.module.executor.service.plan.producing; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; + +/** + * 组件生产系统 HTTP 报文日志开关。 + * + *
配置可通过配置中心动态刷新;缺省关闭成功请求及响应的完整报文日志, + * HTTP、业务和网络异常日志不受此开关影响。
+ */ +@Data +@Component +@RefreshScope +@ConfigurationProperties(prefix = "chenfeng.producing") +public class ProducingHttpLogProperties { + + /** 是否输出组件接口成功请求及响应的完整报文,缺省关闭。 */ + private boolean httpLogEnabled = false; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/producing/ProducingPlanOrderClient.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/producing/ProducingPlanOrderClient.java index dcf03175b..6550fe0c9 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/producing/ProducingPlanOrderClient.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/producing/ProducingPlanOrderClient.java @@ -27,12 +27,15 @@ import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PRODUCING_PLA public class ProducingPlanOrderClient { private final ProducingPlanOrderProperties properties; + private final ProducingHttpLogProperties httpLogProperties; private final ObjectMapper objectMapper; private final HttpClient httpClient; public ProducingPlanOrderClient(ProducingPlanOrderProperties properties, + ProducingHttpLogProperties httpLogProperties, ObjectMapper objectMapper) { this.properties = properties; + this.httpLogProperties = httpLogProperties; this.objectMapper = objectMapper; this.httpClient = HttpClient.newBuilder() .connectTimeout(properties.getConnectTimeout()) @@ -43,8 +46,10 @@ public class ProducingPlanOrderClient { List配置可通过配置中心动态刷新;缺省关闭成功请求及响应的完整报文日志, + * HTTP、业务和网络异常日志不受此开关影响。
+ */ +@Data +@Component +@RefreshScope +@ConfigurationProperties(prefix = "chenfeng.producing") +public class ProducingHttpLogProperties { + + /** 是否输出组件接口成功请求及响应的完整报文,缺省关闭。 */ + private boolean httpLogEnabled = false; +} diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/producing/ProducingOrderClient.java b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/producing/ProducingOrderClient.java index d63ffbc78..7c201a1e2 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/producing/ProducingOrderClient.java +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/producing/ProducingOrderClient.java @@ -35,6 +35,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.PRODUCING_ORDER_S public class ProducingOrderClient { private final ProducingOrderImportProperties properties; + private final ProducingHttpLogProperties httpLogProperties; private final ObjectMapper objectMapper; private final HttpClient httpClient; @@ -42,10 +43,14 @@ public class ProducingOrderClient { * 创建组件生产系统客户端,并从配置初始化超时参数。 * * @param properties 组件生产单接口配置 + * @param httpLogProperties 组件接口成功报文日志开关 * @param objectMapper 系统 Jackson 配置 */ - public ProducingOrderClient(ProducingOrderImportProperties properties, ObjectMapper objectMapper) { + public ProducingOrderClient(ProducingOrderImportProperties properties, + ProducingHttpLogProperties httpLogProperties, + ObjectMapper objectMapper) { this.properties = properties; + this.httpLogProperties = httpLogProperties; this.objectMapper = objectMapper.copy() .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); this.httpClient = HttpClient.newBuilder() @@ -220,6 +225,9 @@ public class ProducingOrderClient { int attempt, int maxAttempts, String requestBody) { + if (!httpLogProperties.isHttpLogEnabled()) { + return; + } log.info("[producing-order-http-request] operation={} method={} uri={} attempt={}/{} " + "requestBytes={} requestBody={}", operation, method, uri, attempt, maxAttempts, @@ -238,10 +246,12 @@ public class ProducingOrderClient { long elapsedMs, String responseBody) { if (status >= 200 && status < 300) { - log.info("[producing-order-http-result] operation={} method={} uri={} attempt={}/{} " - + "status={} elapsedMs={} responseBytes={} result={}", - operation, method, uri, attempt, maxAttempts, status, elapsedMs, - utf8Length(responseBody), payload(responseBody)); + if (httpLogProperties.isHttpLogEnabled()) { + log.info("[producing-order-http-result] operation={} method={} uri={} attempt={}/{} " + + "status={} elapsedMs={} responseBytes={} result={}", + operation, method, uri, attempt, maxAttempts, status, elapsedMs, + utf8Length(responseBody), payload(responseBody)); + } return; } log.error("[producing-order-http-result] operation={} method={} uri={} attempt={}/{} "