Ver código fonte

更新日志处理逻辑

woody 1 ano atrás
pai
commit
e8125d6687
18 arquivos alterados com 128 adições e 88 exclusões
  1. 12 4
      framework-base/src/main/java/com/chelvc/framework/base/context/LoggingContextHolder.java
  2. 1 6
      framework-database/src/main/java/com/chelvc/framework/database/interceptor/DynamicDatasourceInterceptor.java
  3. 28 17
      framework-dubbo/src/main/java/com/chelvc/framework/dubbo/interceptor/DubboConsumerInterceptor.java
  4. 35 15
      framework-dubbo/src/main/java/com/chelvc/framework/dubbo/interceptor/DubboProviderInterceptor.java
  5. 0 3
      framework-feign/src/main/java/com/chelvc/framework/feign/interceptor/FeignHeaderInterceptor.java
  6. 8 10
      framework-jpush/src/main/java/com/chelvc/framework/jpush/DefaultJPushHandler.java
  7. 9 4
      framework-location/src/main/java/com/chelvc/framework/location/support/JuheLocationHandler.java
  8. 10 5
      framework-location/src/main/java/com/chelvc/framework/location/support/TencentLocationHandler.java
  9. 0 5
      framework-redis/src/main/java/com/chelvc/framework/redis/cache/RedisZSetCaching.java
  10. 0 3
      framework-redis/src/main/java/com/chelvc/framework/redis/stream/MessageStreamListener.java
  11. 0 2
      framework-security/src/main/java/com/chelvc/framework/security/interceptor/ControllerCryptoInterceptor.java
  12. 1 5
      framework-security/src/main/java/com/chelvc/framework/security/serializer/JacksonDesensitizeSerializer.java
  13. 7 0
      framework-sms/src/main/java/com/chelvc/framework/sms/support/AliyunSmsHandler.java
  14. 0 2
      framework-sms/src/main/java/com/chelvc/framework/sms/support/DefaultCaptchaSmsHandler.java
  15. 8 0
      framework-sms/src/main/java/com/chelvc/framework/sms/support/TencentSmsHandler.java
  16. 0 2
      framework-wechat/src/main/java/com/chelvc/framework/wechat/DefaultWechatHandler.java
  17. 9 3
      framework-wechat/src/main/java/com/chelvc/framework/wechat/DefaultWechatPublicHandler.java
  18. 0 2
      framework-wechat/src/main/java/com/chelvc/framework/wechat/context/WechatContextHolder.java

+ 12 - 4
framework-base/src/main/java/com/chelvc/framework/base/context/LoggingContextHolder.java

@@ -242,7 +242,9 @@ public final class LoggingContextHolder {
      * @param t      异常对象实例
      */
     public static void debug(@NonNull Logger logger, @NonNull Throwable t) {
-        logger.debug(message(t), t);
+        if (logger.isDebugEnabled()) {
+            logger.debug(message(t), t);
+        }
     }
 
     /**
@@ -252,7 +254,9 @@ public final class LoggingContextHolder {
      * @param messages 消息数组
      */
     public static void debug(@NonNull Logger logger, @NonNull Object... messages) {
-        logger.debug(message(messages));
+        if (logger.isDebugEnabled()) {
+            logger.debug(message(messages));
+        }
     }
 
     /**
@@ -263,7 +267,9 @@ public final class LoggingContextHolder {
      * @param t       异常对象实例
      */
     public static void debug(@NonNull Logger logger, @NonNull HttpServletRequest request, @NonNull Throwable t) {
-        logger.debug(message(request, t), t);
+        if (logger.isDebugEnabled()) {
+            logger.debug(message(request, t), t);
+        }
     }
 
     /**
@@ -274,6 +280,8 @@ public final class LoggingContextHolder {
      * @param messages 消息数组
      */
     public static void debug(@NonNull Logger logger, @NonNull HttpServletRequest request, @NonNull Object... messages) {
-        logger.debug(message(request, messages));
+        if (logger.isDebugEnabled()) {
+            logger.debug(message(request, messages));
+        }
     }
 }

+ 1 - 6
framework-database/src/main/java/com/chelvc/framework/database/interceptor/DynamicDatasourceInterceptor.java

@@ -9,7 +9,6 @@ import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.chelvc.framework.common.util.StringUtils;
 import com.google.common.collect.Maps;
 import lombok.NonNull;
-import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
@@ -30,7 +29,6 @@ import org.springframework.util.CollectionUtils;
  * @author Woody
  * @date 2024/1/30
  */
-@Slf4j
 @ConditionalOnClass(DynamicDataSourceContextHolder.class)
 public class DynamicDatasourceInterceptor implements BeanDefinitionRegistryPostProcessor {
     /**
@@ -82,7 +80,6 @@ public class DynamicDatasourceInterceptor implements BeanDefinitionRegistryPostP
                     }
                 });
             }
-            log.debug("Initialized datasource context: {}", this.datasourceContext);
         }
 
         /**
@@ -126,9 +123,7 @@ public class DynamicDatasourceInterceptor implements BeanDefinitionRegistryPostP
          * @throws Throwable 方法调用异常
          */
         protected Object routing(ProceedingJoinPoint point) throws Throwable {
-            String key = this.lookupDatasourceKey(point);
-            log.debug("Initializing datasource context for {}: {}", point.getSignature().toShortString(), key);
-            DynamicDataSourceContextHolder.push(key);
+            DynamicDataSourceContextHolder.push(this.lookupDatasourceKey(point));
             try {
                 return point.proceed(point.getArgs());
             } finally {

+ 28 - 17
framework-dubbo/src/main/java/com/chelvc/framework/dubbo/interceptor/DubboConsumerInterceptor.java

@@ -1,6 +1,7 @@
 package com.chelvc.framework.dubbo.interceptor;
 
 import com.chelvc.framework.base.context.SessionContextHolder;
+import com.chelvc.framework.common.model.Session;
 import com.chelvc.framework.dubbo.adapter.DubboObjectAdapterHolder;
 import com.chelvc.framework.dubbo.adapter.DubboObjectAdapterWrapper;
 import org.apache.dubbo.common.constants.CommonConstants;
@@ -47,28 +48,38 @@ public class DubboConsumerInterceptor implements Filter {
         return wrapper;
     }
 
-    @Override
-    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
-        // 初始化会话信息
-        RpcContext.getClientAttachment().setObjectAttachment(
-                SessionContextHolder.NAME, SessionContextHolder.getSession(false)
-        );
+    /**
+     * 接口调用处理
+     *
+     * @param invoker    接口调用器
+     * @param invocation 调用信息
+     * @return 调用结果
+     * @throws RpcException 接口调用异常
+     */
+    private Result processing(Invoker<?> invoker, Invocation invocation) throws RpcException {
+        // 获取接口调用结果
+        Result result = invoker.invoke(invocation);
+        Object value = result.getValue();
+        if (value == null) {
+            return result;
+        }
 
-        // 查找对象适配器
+        // 自定义对象解包
         DubboObjectAdapterWrapper<?, Object> wrapper = this.lookupObjectAdapter(invocation);
+        if (wrapper == null) {
+            return result;
+        }
+        value = wrapper.getAdapter().unwrap(result.getValue());
+        return AsyncRpcResult.newDefaultAsyncResult(value, invocation);
+    }
 
+    @Override
+    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
+        Session session = SessionContextHolder.getSession(false);
+        RpcContext.getClientAttachment().setObjectAttachment(SessionContextHolder.NAME, session);
         try {
-            // 接口调用
-            Result result = invoker.invoke(invocation);
-            if (wrapper == null) {
-                return result;
-            }
-
-            // 对象解包
-            Object value = wrapper.getAdapter().unwrap(result.getValue());
-            return AsyncRpcResult.newDefaultAsyncResult(value, invocation);
+            return this.processing(invoker, invocation);
         } finally {
-            // 清理请求上下文
             RpcContext.getClientAttachment().clearAttachments();
         }
     }

+ 35 - 15
framework-dubbo/src/main/java/com/chelvc/framework/dubbo/interceptor/DubboProviderInterceptor.java

@@ -1,9 +1,11 @@
 package com.chelvc.framework.dubbo.interceptor;
 
+import com.chelvc.framework.base.context.LoggingContextHolder;
 import com.chelvc.framework.base.context.SessionContextHolder;
 import com.chelvc.framework.common.model.Session;
 import com.chelvc.framework.dubbo.adapter.DubboObjectAdapterHolder;
 import com.chelvc.framework.dubbo.adapter.DubboObjectAdapterWrapper;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.constants.CommonConstants;
 import org.apache.dubbo.common.extension.Activate;
 import org.apache.dubbo.rpc.AsyncRpcResult;
@@ -20,30 +22,48 @@ import org.apache.dubbo.rpc.RpcException;
  * @author Woody
  * @date 2024/1/30
  */
+@Slf4j
 @Activate(group = CommonConstants.PROVIDER)
 public class DubboProviderInterceptor implements Filter {
+    /**
+     * 接口调用处理
+     *
+     * @param invoker    接口调用器
+     * @param invocation 调用信息
+     * @return 调用结果
+     * @throws RpcException 接口调用异常
+     */
+    private Result processing(Invoker<?> invoker, Invocation invocation) throws RpcException {
+        // 获取接口调用结果
+        Result result = invoker.invoke(invocation);
+        Object value = result.getValue();
+        if (value == null) {
+            return result;
+        }
+
+        // 自定义对象包装
+        DubboObjectAdapterWrapper<Object, ?> wrapper = DubboObjectAdapterHolder.lookupObjectAdapter(value.getClass());
+        if (wrapper == null) {
+            return result;
+        }
+        value = wrapper.getAdapter().wrap(result.getValue());
+        return AsyncRpcResult.newDefaultAsyncResult(value, invocation);
+    }
+
     @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
-        // 初始化会话信息
         Session session = (Session) RpcContext.getServerAttachment().getObjectAttachment(SessionContextHolder.NAME);
         SessionContextHolder.setSession(session);
-
-        // 调用目标接口
         try {
-            Result result = invoker.invoke(invocation);
-            Object value = result.getValue();
-            if (value == null) {
-                return result;
+            boolean debug = log.isDebugEnabled();
+            if (debug) {
+                log.debug(LoggingContextHolder.message(invocation.getMethodName(), null, invocation.getArguments()));
             }
-
-            // 对象包装
-            DubboObjectAdapterWrapper<Object, ?> wrapper =
-                    DubboObjectAdapterHolder.lookupObjectAdapter(value.getClass());
-            if (wrapper == null) {
-                return result;
+            Result result = this.processing(invoker, invocation);
+            if (debug) {
+                log.debug(LoggingContextHolder.message(invocation.getMethodName(), null, result.getValue()));
             }
-            value = wrapper.getAdapter().wrap(result.getValue());
-            return AsyncRpcResult.newDefaultAsyncResult(value, invocation);
+            return result;
         } finally {
             SessionContextHolder.clearSessionContext();
         }

+ 0 - 3
framework-feign/src/main/java/com/chelvc/framework/feign/interceptor/FeignHeaderInterceptor.java

@@ -7,7 +7,6 @@ import com.chelvc.framework.common.model.Terminal;
 import com.chelvc.framework.common.util.ObjectUtils;
 import feign.RequestInterceptor;
 import feign.RequestTemplate;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 /**
@@ -16,7 +15,6 @@ import org.springframework.stereotype.Component;
  * @author Woody
  * @date 2024/1/30
  */
-@Slf4j
 @Component
 public class FeignHeaderInterceptor implements RequestInterceptor {
     @Override
@@ -40,6 +38,5 @@ public class FeignHeaderInterceptor implements RequestInterceptor {
             template.header(SessionContextHolder.HEADER_TIMESTAMP,
                     (String) ObjectUtils.ifNull(session.getTimestamp(), String::valueOf));
         }
-        log.debug("Feign request headers: {}", template.headers());
     }
 }

+ 8 - 10
framework-jpush/src/main/java/com/chelvc/framework/jpush/DefaultJPushHandler.java

@@ -97,7 +97,7 @@ public class DefaultJPushHandler implements JPushHandler {
         try {
             return this.restTemplate.exchange(url, HttpMethod.GET, entity, ChatMessage.class).getBody();
         } catch (Exception e) {
-            LoggingContextHolder.warn(log, e);
+            log.warn("JPush message get failed: {}, {}", url, e.getMessage());
             return null;
         }
     }
@@ -115,7 +115,7 @@ public class DefaultJPushHandler implements JPushHandler {
                     && ((code = ((APIRequestException) e).getErrorCode()) == 1011 || code == 899001)) {
                 return true;
             }
-            LoggingContextHolder.warn(log, e);
+            log.warn("JPush register failed: {}", e.getMessage());
             return false;
         }
         return true;
@@ -136,15 +136,13 @@ public class DefaultJPushHandler implements JPushHandler {
         try {
             result = this.pushClient.sendPush(payload);
         } catch (Exception e) {
-            LoggingContextHolder.warn(log, e);
+            log.warn("JPush push failed: {}, {}", payload.getTarget(), e.getMessage());
             return 0;
         }
         if (result != null && result.statusCode == 0) {
             return result.msg_id;
         }
-        Integer code = result == null || result.error == null ? null : result.error.getCode();
-        String message = result == null || result.error == null ? null : result.error.getMessage();
-        LoggingContextHolder.warn(log, code, message);
+        log.warn("JPush push failed: {}, {}", payload.getTarget(), result);
         return 0;
     }
 
@@ -213,7 +211,7 @@ public class DefaultJPushHandler implements JPushHandler {
         try {
             return this.pushClient.batchSendPushByAlias(payloads);
         } catch (Exception e) {
-            LoggingContextHolder.warn(log, e);
+            log.warn("JPush push failed: {}", e.getMessage());
             return null;
         }
     }
@@ -232,7 +230,7 @@ public class DefaultJPushHandler implements JPushHandler {
         try {
             result = this.pushClient.getReceivedsDetail(ids);
         } catch (Exception e) {
-            LoggingContextHolder.warn(log, e);
+            log.warn("JPush delivery get failed: {}", e.getMessage());
             return Collections.emptyList();
         }
         return ObjectUtils.ifNull(result.received_list, Collections::emptyList);
@@ -261,7 +259,7 @@ public class DefaultJPushHandler implements JPushHandler {
         try {
             return this.messageClient.getUserInfo(username);
         } catch (Exception e) {
-            LoggingContextHolder.warn(log, e);
+            log.warn("JPush user info get failed: {}, {}", username, e.getMessage());
             return null;
         }
     }
@@ -271,7 +269,7 @@ public class DefaultJPushHandler implements JPushHandler {
         try {
             return this.messageClient.getUserState(username);
         } catch (Exception e) {
-            LoggingContextHolder.warn(log, e);
+            log.warn("JPush user state get failed: {}, {}", username, e.getMessage());
             return null;
         }
     }

+ 9 - 4
framework-location/src/main/java/com/chelvc/framework/location/support/JuheLocationHandler.java

@@ -41,17 +41,22 @@ public class JuheLocationHandler implements LocationHandler {
      */
     private Address execute(String url, String parameter) {
         url = String.format(url, parameter, this.key);
-        log.debug("Juhe location request: {}", url);
+        boolean debug = log.isDebugEnabled();
+        if (debug) {
+            log.debug("Juhe location request: {}, {}", url, parameter);
+        }
         JuheLocationResponse response;
         try {
             response = this.restTemplate.getForObject(url, JuheLocationResponse.class);
         } catch (Exception e) {
-            log.warn("Juhe locate failed: {}", e.getMessage());
+            log.warn("Juhe locate failed: {}, {}", parameter, e.getMessage());
             return null;
         }
-        log.debug("Juhe locate response: {}", response);
+        if (debug) {
+            log.debug("Juhe locate response: {}, {}", parameter, response);
+        }
         if (response == null || response.getStatus() == null || response.getStatus() != 0) {
-            log.warn("Juhe locate failed: {}", response);
+            log.warn("Juhe locate failed: {}, {}", parameter, response);
             return null;
         }
         String province = ObjectUtils.ifNull(response.getResult(), JuheLocationResponse.Position::getProvince);

+ 10 - 5
framework-location/src/main/java/com/chelvc/framework/location/support/TencentLocationHandler.java

@@ -48,22 +48,27 @@ public class TencentLocationHandler implements LocationHandler {
      */
     private Address execute(String url, String parameter) {
         url = String.format(url, parameter, this.key);
-        log.debug("Tencent location request: {}", url);
+        boolean debug = log.isDebugEnabled();
+        if (debug) {
+            log.debug("Tencent location request: {}, {}", url, parameter);
+        }
         TencentLocationResponse response;
         try {
             response = this.restTemplate.getForObject(url, TencentLocationResponse.class);
         } catch (Exception e) {
-            log.warn("Tencent locate failed: {}", e.getMessage());
+            log.warn("Tencent locate failed: {}, {}", parameter, e.getMessage());
             return null;
         }
-        log.debug("Tencent locate response: {}", response);
+        if (debug) {
+            log.debug("Tencent locate response: {}, {}", parameter, response);
+        }
         if (response == null || response.getStatus() == null || response.getStatus() != 0) {
-            log.warn("Tencent locate failed: {}", response);
+            log.warn("Tencent locate failed: {}, {}", parameter, response);
             return null;
         }
         TencentLocationResponse.Position position = response.getResult().getPosition();
         if (!Region.isRegion(position.getAdcode())) {
-            log.warn("Invalid tencent locate adcode: {}", position.getAdcode());
+            log.warn("Tencent invalid location: {}, {}", parameter, position.getAdcode());
             return null;
         }
 

+ 0 - 5
framework-redis/src/main/java/com/chelvc/framework/redis/cache/RedisZSetCaching.java

@@ -405,9 +405,6 @@ public class RedisZSetCaching implements Caching {
             } else {
                 value = (V) this.template.opsForValue().get(key);
             }
-            if (value == null) {
-                log.debug("Redis cache missing: {}", key);
-            }
         } catch (Throwable t) {
             log.warn("Redis cache get failed: {}, {}", key, t.getMessage());
         }
@@ -441,7 +438,6 @@ public class RedisZSetCaching implements Caching {
         }
 
         // 重新加载并更新缓存数据
-        log.debug("Redis list cache missing: {}, {}, {}, {}", naming, min, max, size);
         List<V> suppliers = supplier.apply(naming, initial);
         if (ObjectUtils.isEmpty(suppliers)) {
             return ObjectUtils.ifEmpty(values, Collections::emptyList);
@@ -478,7 +474,6 @@ public class RedisZSetCaching implements Caching {
         }
 
         // 重新加载并更新缓存数据
-        log.debug("Redis random cache missing: {}, {}, {}, {}", naming, min, max, size);
         List<V> suppliers = supplier.apply(naming, initial);
         if (ObjectUtils.isEmpty(suppliers)) {
             return ObjectUtils.ifEmpty(values, Collections::emptyList);

+ 0 - 3
framework-redis/src/main/java/com/chelvc/framework/redis/stream/MessageStreamListener.java

@@ -101,8 +101,6 @@ public class MessageStreamListener<T> implements StreamListener<String, MapRecor
      * @return true/false
      */
     private boolean processing(MapRecord<String, String, String> record) {
-        log.debug("Consume message: {}, {}", this.consumer, record);
-
         // 消费消息
         try {
             RedisContextHolder.consume(record, this.type, this.listener::consume);
@@ -121,7 +119,6 @@ public class MessageStreamListener<T> implements StreamListener<String, MapRecor
      * @return true/false
      */
     private boolean delaying(MapRecord<String, String, String> record, long timestamp) {
-        log.debug("Delaying message: {}, {}", this.consumer, record);
         try {
             String message = RedisContextHolder.serialize(record);
             RedisContextHolder.getStringTemplate().opsForZSet().add(this.delayed, message, timestamp);

+ 0 - 2
framework-security/src/main/java/com/chelvc/framework/security/interceptor/ControllerCryptoInterceptor.java

@@ -18,7 +18,6 @@ import com.chelvc.framework.common.util.ObjectUtils;
 import com.chelvc.framework.security.annotation.Crypto;
 import com.chelvc.framework.security.config.SecurityProperties;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.binary.Base64;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.MethodParameter;
@@ -40,7 +39,6 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
  * @author Woody
  * @date 2024/1/30
  */
-@Slf4j
 @ControllerAdvice
 @RequiredArgsConstructor(onConstructor = @__(@Autowired))
 public class ControllerCryptoInterceptor extends RequestBodyAdviceAdapter implements ResponseBodyAdvice<Object> {

+ 1 - 5
framework-security/src/main/java/com/chelvc/framework/security/serializer/JacksonDesensitizeSerializer.java

@@ -12,7 +12,6 @@ import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.ser.ContextualSerializer;
 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
-import lombok.extern.slf4j.Slf4j;
 
 /**
  * JSON数据脱敏序列化处理器
@@ -20,7 +19,6 @@ import lombok.extern.slf4j.Slf4j;
  * @author Woody
  * @date 2024/1/30
  */
-@Slf4j
 public class JacksonDesensitizeSerializer extends StdSerializer<String> implements ContextualSerializer {
     private DesensitizeUtils.Mode mode;
 
@@ -34,9 +32,7 @@ public class JacksonDesensitizeSerializer extends StdSerializer<String> implemen
         if (this.mode == null || StringUtils.isEmpty(plaintext)) {
             generator.writeString(plaintext);
         } else {
-            String ciphertext = this.mode.desensitize(plaintext);
-            log.debug("Data desensitize: {} -> {}", plaintext, ciphertext);
-            generator.writeString(ciphertext);
+            generator.writeString(this.mode.desensitize(plaintext));
         }
     }
 

+ 7 - 0
framework-sms/src/main/java/com/chelvc/framework/sms/support/AliyunSmsHandler.java

@@ -61,6 +61,10 @@ public class AliyunSmsHandler implements TemplateSmsHandler {
 
     @Override
     public void send(@NonNull String mobile, @NonNull String template, @NonNull Map<String, ?> parameters) {
+        boolean debug = log.isDebugEnabled();
+        if (debug) {
+            log.debug("Aliyun sms request: {}, {}", mobile, parameters);
+        }
         SendSmsRequest request = new SendSmsRequest().setPhoneNumbers(mobile).setSignName(this.signature)
                 .setTemplateCode(template).setTemplateParam(JacksonUtils.serialize(parameters));
         SendSmsResponse response;
@@ -69,6 +73,9 @@ public class AliyunSmsHandler implements TemplateSmsHandler {
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
+        if (debug) {
+            log.debug("Aliyun sms response: {}, {}", mobile, response);
+        }
         SendSmsResponseBody body = response.getBody();
         if (!Objects.equals(body.getCode(), "OK")) {
             if (Objects.equals(body.getCode(), "isv.DAY_LIMIT_CONTROL")

+ 0 - 2
framework-sms/src/main/java/com/chelvc/framework/sms/support/DefaultCaptchaSmsHandler.java

@@ -18,7 +18,6 @@ import com.chelvc.framework.sms.SmsSession;
 import com.chelvc.framework.sms.TemplateSmsHandler;
 import com.chelvc.framework.sms.config.SmsProperties;
 import lombok.NonNull;
-import lombok.extern.slf4j.Slf4j;
 
 /**
  * 验证码短信处理器默认实现
@@ -26,7 +25,6 @@ import lombok.extern.slf4j.Slf4j;
  * @author Woody
  * @date 2024/1/30
  */
-@Slf4j
 public class DefaultCaptchaSmsHandler implements CaptchaSmsHandler {
     private final TemplateSmsHandler handler;
     private final SmsProperties.Captcha properties;

+ 8 - 0
framework-sms/src/main/java/com/chelvc/framework/sms/support/TencentSmsHandler.java

@@ -1,5 +1,6 @@
 package com.chelvc.framework.sms.support;
 
+import java.util.Arrays;
 import java.util.Map;
 
 import com.chelvc.framework.base.context.ApplicationContextHolder;
@@ -46,6 +47,10 @@ public class TencentSmsHandler implements TemplateSmsHandler {
 
     @Override
     public void send(@NonNull String mobile, @NonNull String template, @NonNull String... parameters) {
+        boolean debug = log.isDebugEnabled();
+        if (debug) {
+            log.debug("Tencent sms request: {}, {}", mobile, Arrays.toString(parameters));
+        }
         SmsSingleSenderResult result;
         try {
             result = this.sender.sendWithParam(this.region, mobile, Integer.parseInt(template),
@@ -53,6 +58,9 @@ public class TencentSmsHandler implements TemplateSmsHandler {
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
+        if (debug) {
+            log.debug("Tencent sms response: {}, {}", mobile, result);
+        }
         if (result.result != 0) {
             if (result.result == 1023 || result.result == 1025) {
                 throw new ResourceUnavailableException(ApplicationContextHolder.getMessage("SMS.Count.Limit"));

+ 0 - 2
framework-wechat/src/main/java/com/chelvc/framework/wechat/DefaultWechatHandler.java

@@ -25,7 +25,6 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -41,7 +40,6 @@ import org.springframework.web.client.RestTemplate;
  * @author Woody
  * @date 2024/1/30
  */
-@Slf4j
 @Component
 @RequiredArgsConstructor(onConstructor = @__(@Autowired))
 public class DefaultWechatHandler implements WechatHandler {

+ 9 - 3
framework-wechat/src/main/java/com/chelvc/framework/wechat/DefaultWechatPublicHandler.java

@@ -17,7 +17,6 @@ import javax.crypto.Cipher;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
 
-import com.chelvc.framework.base.context.LoggingContextHolder;
 import com.chelvc.framework.common.util.AESUtils;
 import com.chelvc.framework.common.util.AssertUtils;
 import com.chelvc.framework.common.util.ObjectUtils;
@@ -234,6 +233,10 @@ public class DefaultWechatPublicHandler implements WechatPublicHandler {
     @Override
     public long push(@NonNull String openid, @NonNull String template, @NonNull String redirect,
                      @NonNull Map<?, ?> parameters) {
+        boolean debug = log.isDebugEnabled();
+        if (debug) {
+            log.debug("Wechat public push request: {}, {}, {}", openid, template, parameters);
+        }
         String url = SEND_TEMPLATE_MESSAGE_URL + this.getAccessToken();
         String appid = (redirect = redirect.trim()).isEmpty() ? StringUtils.EMPTY : this.wechatHandler.getAppid();
         Map<String, Object> body = ImmutableMap.of(
@@ -257,13 +260,16 @@ public class DefaultWechatPublicHandler implements WechatPublicHandler {
                 ).getBody();
             }
         } catch (Exception e) {
-            LoggingContextHolder.warn(log, template, e.getMessage());
+            log.warn("Wechat public push failed: {}, {}, {}", openid, template, e.getMessage());
             return 0;
         }
+        if (debug) {
+            log.debug("Wechat public push response: {}, {}, {}", openid, template, response);
+        }
         if (response != null && response.getErrcode() == 0) {
             return response.getId();
         }
-        LoggingContextHolder.warn(log, template, response);
+        log.warn("Wechat public push failed: {}, {}, {}", openid, template, response);
         return 0;
     }
 }

+ 0 - 2
framework-wechat/src/main/java/com/chelvc/framework/wechat/context/WechatContextHolder.java

@@ -13,7 +13,6 @@ import com.chelvc.framework.wechat.WechatPublicHandler;
 import com.chelvc.framework.wechat.WechatResponse;
 import com.github.wxpay.sdk.WXPayUtil;
 import lombok.NonNull;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.binary.Base64;
 
 /**
@@ -22,7 +21,6 @@ import org.apache.commons.codec.binary.Base64;
  * @author Woody
  * @date 2024/1/30
  */
-@Slf4j
 public final class WechatContextHolder {
     /**
      * 微信公众号处理器映射表