From 4d289883e726c130008d978a2ec24d2611dc7668 Mon Sep 17 00:00:00 2001 From: cnjxzhao <85160585+cnjxzhao@users.noreply.github.com> Date: Tue, 25 Oct 2022 11:58:11 +0800 Subject: [PATCH] Error code is managed with constants (#10771) (#10820) * Add error code 5-2 ~ 5-20. * Error code is managed with constants (#10549) * Error code is managed with constants (#10549) * Error code is managed with constants (#10771) * Error code is managed with constants (#10771) * Error code is managed with constants (#10771) --- .../cluster/filter/FilterChainBuilder.java | 7 +- .../support/MergeableClusterInvoker.java | 9 +-- .../common/constants/LoggerCodeConstants.java | 65 +++++++++++++++++-- .../deploy/DefaultApplicationDeployer.java | 15 +++-- .../config/deploy/DefaultModuleDeployer.java | 8 ++- .../config/deploy/FrameworkModelCleaner.java | 8 ++- .../ConfigurableMetadataServiceExporter.java | 3 +- .../config/utils/CompositeReferenceCache.java | 8 ++- .../config/utils/SimpleReferenceCache.java | 8 ++- .../ServiceAnnotationPostProcessor.java | 13 ++-- .../DubboDeployApplicationListener.java | 5 +- .../status/DataSourceStatusChecker.java | 8 ++- .../spring/status/SpringStatusChecker.java | 8 ++- .../apollo/ApolloDynamicConfiguration.java | 6 +- .../nacos/NacosDynamicConfiguration.java | 19 +++--- .../java/org/apache/dubbo/container/Main.java | 13 ++-- .../container/spring/SpringContainer.java | 8 ++- .../support/jvalidation/JValidator.java | 8 ++- .../support/jvalidation/JValidatorNew.java | 8 ++- .../kubernetes/KubernetesMeshEnvListener.java | 10 +-- .../KubernetesServiceDiscovery.java | 16 +++-- .../DownloadZookeeperInitializer.java | 8 ++- .../processor/ZookeeperUnixProcessor.java | 11 ++-- 23 files changed, 184 insertions(+), 88 deletions(-) diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/filter/FilterChainBuilder.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/filter/FilterChainBuilder.java index 2911eac412..54d3289930 100644 --- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/filter/FilterChainBuilder.java +++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/filter/FilterChainBuilder.java @@ -19,7 +19,7 @@ package org.apache.dubbo.rpc.cluster.filter; import org.apache.dubbo.common.Experimental; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.extension.SPI; -import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.rpc.BaseFilter; import org.apache.dubbo.rpc.Filter; @@ -35,6 +35,7 @@ import org.apache.dubbo.rpc.cluster.Directory; import java.util.List; import java.util.stream.Collectors; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_EXECUTE_FILTER_EXCEPTION; import static org.apache.dubbo.common.extension.ExtensionScope.APPLICATION; @SPI(value = "default", scope = APPLICATION) @@ -179,7 +180,7 @@ public interface FilterChainBuilder { } class CallbackRegistrationInvoker implements Invoker { - static final Logger LOGGER = LoggerFactory.getLogger(CallbackRegistrationInvoker.class); + static final ErrorTypeAwareLogger LOGGER = LoggerFactory.getErrorTypeAwareLogger(CallbackRegistrationInvoker.class); final Invoker filterInvoker; final List filters; @@ -220,7 +221,7 @@ public interface FilterChainBuilder { } } } catch (RuntimeException runtimeException) { - LOGGER.error(String.format("Exception occurred while executing the %s filter named %s.", i, filter.getClass().getSimpleName())); + LOGGER.error(CLUSTER_EXECUTE_FILTER_EXCEPTION, "the custom filter is abnormal", "", String.format("Exception occurred while executing the %s filter named %s.", i, filter.getClass().getSimpleName())); if (LOGGER.isDebugEnabled()) { LOGGER.debug(String.format("Whole filter list is: %s", filters.stream().map(tmpFilter -> tmpFilter.getClass().getSimpleName()).collect(Collectors.toList()))); } diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java index 1253b1aae7..bdd2ddd6d2 100644 --- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java +++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java @@ -16,7 +16,7 @@ */ package org.apache.dubbo.rpc.cluster.support; -import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.ConfigUtils; import org.apache.dubbo.rpc.AsyncRpcResult; @@ -41,6 +41,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_GROUP_MERGE; import static org.apache.dubbo.rpc.Constants.ASYNC_KEY; import static org.apache.dubbo.rpc.Constants.MERGER_KEY; @@ -50,7 +51,7 @@ import static org.apache.dubbo.rpc.Constants.MERGER_KEY; @SuppressWarnings("unchecked") public class MergeableClusterInvoker extends AbstractClusterInvoker { - private static final Logger log = LoggerFactory.getLogger(MergeableClusterInvoker.class); + private static final ErrorTypeAwareLogger log = LoggerFactory.getErrorTypeAwareLogger(MergeableClusterInvoker.class); public MergeableClusterInvoker(Directory directory) { super(directory); @@ -101,8 +102,8 @@ public class MergeableClusterInvoker extends AbstractClusterInvoker { try { Result r = asyncResult.get(Integer.MAX_VALUE, TimeUnit.MILLISECONDS); if (r.hasException()) { - log.error("Invoke " + getGroupDescFromServiceKey(entry.getKey()) + - " failed: " + r.getException().getMessage(), r.getException()); + log.error(CLUSTER_FAILED_GROUP_MERGE, "Invoke " + getGroupDescFromServiceKey(entry.getKey()) + + " failed: " + r.getException().getMessage(), "", r.getException().getMessage()); } else { resultList.add(r); } diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java index 8934fb77ac..8d5c0d6873 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java @@ -22,7 +22,7 @@ package org.apache.dubbo.common.constants; */ public interface LoggerCodeConstants { - // common module 0-1 ~ 0-4 + // common module String COMMON_THREAD_POOL_EXHAUSTED = "0-1"; String COMMON_PROPERTY_MISSPELLING = "0-2"; @@ -31,9 +31,10 @@ public interface LoggerCodeConstants { String COMMON_CACHE_MAX_FILE_SIZE_LIMIT_EXCEED = "0-4"; - String COMMON_CACHE_MAX_ENTRY_COUNT_LIMIT_EXCEED = "0-5"; + String COMMON_THREAD_INTERRUPTED_EXCEPTION = "0-6"; + // registry module String REGISTRY_ADDRESS_INVALID = "1-1"; @@ -71,7 +72,21 @@ public interface LoggerCodeConstants { String REGISTRY_MISSING_METADATA_CONFIG_PORT = "1-18"; - // cluster module 2-1 ~ 2-18 + String REGISTRY_ERROR_LISTEN_KUBERNETES = "1-19"; + + String REGISTRY_UNABLE_MATCH_KUBERNETES = "1-20"; + + String REGISTRY_UNABLE_FIND_SERVICE_KUBERNETES = "1-21"; + + String REGISTRY_UNABLE_ACCESS_KUBERNETES = "1-22"; + + String REGISTRY_FAILED_DOWNLOAD_FILE = "1-23"; + + String REGISTRY_FAILED_START_ZOOKEEPER = "1-24"; + + String REGISTRY_FAILED_STOP_ZOOKEEPER = "1-25"; + + // cluster module String CLUSTER_FAILED_SITE_SELECTION = "2-1"; String CLUSTER_NO_VALID_PROVIDER = "2-2"; @@ -108,17 +123,21 @@ public interface LoggerCodeConstants { String CLUSTER_NO_RULE_LISTENER = "2-18"; - // proxy module 3-1 + String CLUSTER_EXECUTE_FILTER_EXCEPTION = "2-19"; + + String CLUSTER_FAILED_GROUP_MERGE = "2-20"; + + // proxy module String PROXY_FAILED_CONVERT_URL = "3-1"; - // protocol module 4-1 ~ 4-3 + // protocol module String PROTOCOL_UNSUPPORTED = "4-1"; String PROTOCOL_FAILED_INIT_SERIALIZATION_OPTIMIZER = "4-2"; String PROTOCOL_FAILED_REFER_INVOKER = "4-3"; - // config module 5-1 ~ 5-20 + // config module String CONFIG_FAILED_CONNECT_REGISTRY = "5-1"; String CONFIG_FAILED_SHUTDOWN_HOOK = "5-2"; @@ -159,7 +178,39 @@ public interface LoggerCodeConstants { String CONFIG_STOP_DUBBO_ERROR = "5-20"; - // transport module 6-1 ~ 6-2 + String CONFIG_FAILED_EXECUTE_DESTORY = "5-21"; + + String CONFIG_FAILED_INIT_CONFIG_CENTER = "5-22"; + + String CONFIG_FAILED_WAIT_EXPORT_REFER = "5-23"; + + String CONFIG_FAILED_REFER_SERVICE = "5-24"; + + String CONFIG_UNDEFINED_PROTOCOL = "5-25"; + + String CONFIG_METADATA_SERVICE_EXPORTED = "5-26"; + + String CONFIG_API_WRONG_USE = "5-27"; + + String CONFIG_NO_ANNOTATIONS_FOUND = "5-28"; + + String CONFIG_NO_BEANS_SCANNED = "5-29"; + + String CONFIG_DUPLICATED_BEAN_DEFINITION = "5-30"; + + String CONFIG_WARN_STATUS_CHECKER = "5-31"; + + String CONFIG_FAILED_CLOSE_CONNECT_APOLLO = "5-32"; + + String CONFIG_NOT_EFFECT_EMPTY_RULE_APOLLO = "5-33"; + + String CONFIG_ERROR_NACOS = "5-34"; + + String CONFIG_START_DUBBO_ERROR = "5-35"; + + String CONFIG_FILTER_VALIDATION_EXCEPTION = "5-36"; + + // transport module String TRANSPORT_FAILED_CONNECT_PROVIDER = "6-1"; String TRANSPORT_CLIENT_CONNECT_TIMEOUT = "6-2"; diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java index 441598e375..da74d75a53 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java @@ -75,6 +75,9 @@ import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_P import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE; import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_REFRESH_INSTANCE_ERROR; import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_REGISTER_INSTANCE_ERROR; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_START_MODEL; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_EXECUTE_DESTORY; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_INIT_CONFIG_CENTER; import static org.apache.dubbo.common.utils.StringUtils.isEmpty; import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty; import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_PUBLISH_DELAY; @@ -621,7 +624,7 @@ public class DefaultApplicationDeployer extends AbstractDeployer impleme // wait for refer finish waitReferFinish(); } catch (Throwable e) { - logger.warn("wait for export/refer services occurred an exception", e); + logger.warn(CONFIG_FAILED_WAIT_EXPORT_REFER, "", "", "wait for export/refer services occurred an exception", e); } finally { onModuleStarted(); } @@ -421,7 +423,7 @@ public class DefaultModuleDeployer extends AbstractDeployer impleme exportFuture = CompletableFuture.allOf(asyncExportingFutures.toArray(new CompletableFuture[0])); exportFuture.get(); } catch (Throwable e) { - logger.warn(getIdentifier() + " export services occurred an exception: " + e.toString()); + logger.warn(CONFIG_FAILED_EXPORT_SERVICE, "","",getIdentifier() + " export services occurred an exception: " + e.toString()); } finally { logger.info(getIdentifier() + " export services finished."); asyncExportingFutures.clear(); @@ -434,7 +436,7 @@ public class DefaultModuleDeployer extends AbstractDeployer impleme referFuture = CompletableFuture.allOf(asyncReferringFutures.toArray(new CompletableFuture[0])); referFuture.get(); } catch (Throwable e) { - logger.warn(getIdentifier() + " refer services occurred an exception: " + e.toString()); + logger.warn(CONFIG_FAILED_REFER_SERVICE, "", "", getIdentifier() + " refer services occurred an exception: " + e.toString()); } finally { logger.info(getIdentifier() + " refer services finished."); asyncReferringFutures.clear(); diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/FrameworkModelCleaner.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/FrameworkModelCleaner.java index 473ddf7156..258181d2f2 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/FrameworkModelCleaner.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/FrameworkModelCleaner.java @@ -17,7 +17,7 @@ package org.apache.dubbo.config.deploy; import org.apache.dubbo.common.extension.ExtensionLoader; -import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.rpc.Protocol; import org.apache.dubbo.rpc.model.FrameworkModel; @@ -25,12 +25,14 @@ import org.apache.dubbo.rpc.model.ScopeModelDestroyListener; import java.util.concurrent.atomic.AtomicBoolean; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_UNDEFINED_PROTOCOL; + /** * A cleaner to release resources of framework model */ public class FrameworkModelCleaner implements ScopeModelDestroyListener { - private static final Logger logger = LoggerFactory.getLogger(FrameworkModelCleaner.class); + private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(FrameworkModelCleaner.class); private final AtomicBoolean protocolDestroyed = new AtomicBoolean(false); @@ -65,7 +67,7 @@ public class FrameworkModelCleaner implements ScopeModelDestroyListener) type); } else { - logger.warn("Using non-singleton ReferenceConfig and ReferenceCache at the same time may cause memory leak. " + + logger.warn(CONFIG_API_WRONG_USE, "the api method is being used incorrectly", "", "Using non-singleton ReferenceConfig and ReferenceCache at the same time may cause memory leak. " + "Call ReferenceConfig#get() directly for non-singleton ReferenceConfig instead of using ReferenceCache#get(ReferenceConfig)"); } if (proxy == null) { diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java index f97bf1655e..65389f95b5 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java @@ -18,7 +18,7 @@ package org.apache.dubbo.config.utils; import org.apache.dubbo.common.BaseServiceMetadata; import org.apache.dubbo.common.config.ReferenceCache; -import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.common.utils.StringUtils; @@ -33,6 +33,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicInteger; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_API_WRONG_USE; + /** * A simple util class for cache {@link ReferenceConfigBase}. *

@@ -42,7 +44,7 @@ import java.util.concurrent.atomic.AtomicInteger; * You can implement and use your own {@link ReferenceConfigBase} cache if you need use complicate strategy. */ public class SimpleReferenceCache implements ReferenceCache { - private static final Logger logger = LoggerFactory.getLogger(SimpleReferenceCache.class); + private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(SimpleReferenceCache.class); public static final String DEFAULT_NAME = "_DEFAULT_"; /** * Create the key with the Group, Interface and version attribute of {@link ReferenceConfigBase}. @@ -117,7 +119,7 @@ public class SimpleReferenceCache implements ReferenceCache { if (singleton) { proxy = get(key, (Class) type); } else { - logger.warn("Using non-singleton ReferenceConfig and ReferenceCache at the same time may cause memory leak. " + + logger.warn(CONFIG_API_WRONG_USE, "", "", "Using non-singleton ReferenceConfig and ReferenceCache at the same time may cause memory leak. " + "Call ReferenceConfig#get() directly for non-singleton ReferenceConfig instead of using ReferenceCache#get(ReferenceConfig)"); } diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationPostProcessor.java index 1a490aabf3..4f9b3342e4 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationPostProcessor.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationPostProcessor.java @@ -16,7 +16,7 @@ */ package org.apache.dubbo.config.spring.beans.factory.annotation; -import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.ClassUtils; import org.apache.dubbo.common.utils.ReflectUtils; @@ -81,6 +81,9 @@ import java.util.Set; import static com.alibaba.spring.util.ObjectUtils.of; import static java.util.Arrays.asList; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_NO_ANNOTATIONS_FOUND; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_NO_BEANS_SCANNED; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_DUPLICATED_BEAN_DEFINITION; import static org.apache.dubbo.common.utils.AnnotationUtils.filterDefaultValues; import static org.apache.dubbo.config.spring.beans.factory.annotation.ServiceBeanNameBuilder.create; import static org.apache.dubbo.config.spring.util.DubboAnnotationUtils.resolveInterfaceName; @@ -111,7 +114,7 @@ public class ServiceAnnotationPostProcessor implements BeanDefinitionRegistryPos com.alibaba.dubbo.config.annotation.Service.class ); - private final Logger logger = LoggerFactory.getLogger(getClass()); + private final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(getClass()); protected final Set packagesToScan; @@ -187,7 +190,7 @@ public class ServiceAnnotationPostProcessor implements BeanDefinitionRegistryPos scanned = true; if (CollectionUtils.isEmpty(packagesToScan)) { if (logger.isWarnEnabled()) { - logger.warn("packagesToScan is empty , ServiceBean registry will be ignored!"); + logger.warn(CONFIG_NO_BEANS_SCANNED, "", "", "packagesToScan is empty , ServiceBean registry will be ignored!"); } return; } @@ -236,7 +239,7 @@ public class ServiceAnnotationPostProcessor implements BeanDefinitionRegistryPos } } else { if (logger.isWarnEnabled()) { - logger.warn("No class annotated by Dubbo @Service was found under package [" + logger.warn(CONFIG_NO_ANNOTATIONS_FOUND,"No annotations were found on the class","","No class annotated by Dubbo @Service was found under package [" + packageToScan + "], ignore re-scanned classes: " + scanExcludeFilter.getExcludedCount()); } } @@ -585,7 +588,7 @@ public class ServiceAnnotationPostProcessor implements BeanDefinitionRegistryPos String msg = "Found duplicated BeanDefinition of service interface [" + serviceInterface + "] with bean name [" + serviceBeanName + "], existing definition [ " + existingDefinition + "], new definition [" + serviceBeanDefinition + "]"; - logger.error(msg); + logger.error(CONFIG_DUPLICATED_BEAN_DEFINITION, "", "", msg); throw new BeanDefinitionStoreException(serviceBeanDefinition.getResourceDescription(), serviceBeanName, msg); } diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java index 7aa7dd2822..37c2343604 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java @@ -17,6 +17,7 @@ package org.apache.dubbo.config.spring.context; import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_STOP_DUBBO_ERROR; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_START_MODEL; import static org.springframework.util.ObjectUtils.nullSafeEquals; import java.util.concurrent.Future; @@ -116,9 +117,9 @@ public class DubboDeployApplicationListener implements ApplicationListener LOADER = ExtensionLoader.getExtensionLoader(Container.class); @@ -72,7 +75,7 @@ public class Main { container.stop(); logger.info("Dubbo " + container.getClass().getSimpleName() + " stopped!"); } catch (Throwable t) { - logger.error(t.getMessage(), t); + logger.error(CONFIG_STOP_DUBBO_ERROR, "", "", t.getMessage(), t); } try { LOCK.lock(); @@ -91,14 +94,14 @@ public class Main { } System.out.println(new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss]").format(new Date()) + " Dubbo service server started!"); } catch (RuntimeException e) { - logger.error(e.getMessage(), e); + logger.error(CONFIG_START_DUBBO_ERROR, "", "", e.getMessage(), e); System.exit(1); } try { LOCK.lock(); STOP.await(); } catch (InterruptedException e) { - logger.warn("Dubbo service server stopped, interrupted by other thread!", e); + logger.warn(COMMON_THREAD_INTERRUPTED_EXCEPTION, "", "", "Dubbo service server stopped, interrupted by other thread!", e); } finally { LOCK.unlock(); } diff --git a/dubbo-container/dubbo-container-spring/src/main/java/org/apache/dubbo/container/spring/SpringContainer.java b/dubbo-container/dubbo-container-spring/src/main/java/org/apache/dubbo/container/spring/SpringContainer.java index e3c0040328..94e094e6a4 100644 --- a/dubbo-container/dubbo-container-spring/src/main/java/org/apache/dubbo/container/spring/SpringContainer.java +++ b/dubbo-container/dubbo-container-spring/src/main/java/org/apache/dubbo/container/spring/SpringContainer.java @@ -16,13 +16,15 @@ */ package org.apache.dubbo.container.spring; -import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.container.Container; import org.springframework.context.support.ClassPathXmlApplicationContext; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_STOP_DUBBO_ERROR; + /** * SpringContainer. (SPI, Singleton, ThreadSafe) * @@ -32,7 +34,7 @@ public class SpringContainer implements Container { public static final String SPRING_CONFIG = "dubbo.spring.config"; public static final String DEFAULT_SPRING_CONFIG = "classpath*:META-INF/spring/*.xml"; - private static final Logger logger = LoggerFactory.getLogger(SpringContainer.class); + private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(SpringContainer.class); static ClassPathXmlApplicationContext context; public static ClassPathXmlApplicationContext getContext() { @@ -59,7 +61,7 @@ public class SpringContainer implements Container { context = null; } } catch (Throwable e) { - logger.error(e.getMessage(), e); + logger.error(CONFIG_STOP_DUBBO_ERROR, "", "", e.getMessage(), e); } } diff --git a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java index d136e373fd..6c5e14e680 100644 --- a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java +++ b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java @@ -18,7 +18,7 @@ package org.apache.dubbo.validation.support.jvalidation; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.bytecode.ClassGenerator; -import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.ReflectUtils; import org.apache.dubbo.validation.MethodValidated; @@ -67,6 +67,8 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FILTER_VALIDATION_EXCEPTION; + /** * Implementation of JValidation. JValidation is invoked if configuration validation attribute value is 'jvalidation'. *

@@ -75,7 +77,7 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 public class JValidator implements Validator {
 
-    private static final Logger logger = LoggerFactory.getLogger(JValidator.class);
+    private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(JValidator.class);
 
     private final Class clazz;
 
@@ -116,7 +118,7 @@ public class JValidator implements Validator {
             }
             return parameterBean;
         } catch (Throwable e) {
-            logger.warn(e.getMessage(), e);
+            logger.warn(CONFIG_FILTER_VALIDATION_EXCEPTION, "", "", e.getMessage(), e);
             return null;
         }
     }
diff --git a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidatorNew.java b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidatorNew.java
index bd2461f92e..542bf33e3c 100644
--- a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidatorNew.java
+++ b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidatorNew.java
@@ -18,7 +18,7 @@ package org.apache.dubbo.validation.support.jvalidation;
 
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.bytecode.ClassGenerator;
-import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
 import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.common.utils.ReflectUtils;
 import org.apache.dubbo.validation.MethodValidated;
@@ -67,6 +67,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FILTER_VALIDATION_EXCEPTION;
+
 /**
  * Implementation of JValidationNew. JValidationNew is invoked if configuration validation attribute value is 'jvalidationNew'.
  * 
@@ -75,7 +77,7 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 public class JValidatorNew implements Validator {
 
-    private static final Logger logger = LoggerFactory.getLogger(JValidatorNew.class);
+    private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(JValidatorNew.class);
 
     private final Class clazz;
 
@@ -116,7 +118,7 @@ public class JValidatorNew implements Validator {
             }
             return parameterBean;
         } catch (Throwable e) {
-            logger.warn(e.getMessage(), e);
+            logger.warn(CONFIG_FILTER_VALIDATION_EXCEPTION, "", "", e.getMessage(), e);
             return null;
         }
     }
diff --git a/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesMeshEnvListener.java b/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesMeshEnvListener.java
index 300dae3b56..94a58b0d37 100644
--- a/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesMeshEnvListener.java
+++ b/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesMeshEnvListener.java
@@ -16,7 +16,7 @@
  */
 package org.apache.dubbo.registry.kubernetes;
 
-import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
 import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.rpc.cluster.router.mesh.route.MeshAppRuleListener;
 import org.apache.dubbo.rpc.cluster.router.mesh.route.MeshEnvListener;
@@ -32,8 +32,10 @@ import org.yaml.snakeyaml.constructor.SafeConstructor;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_ERROR_LISTEN_KUBERNETES;
+
 public class KubernetesMeshEnvListener implements MeshEnvListener {
-    public static final Logger logger = LoggerFactory.getLogger(KubernetesMeshEnvListener.class);
+    public static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(KubernetesMeshEnvListener.class);
     private volatile static boolean usingApiServer = false;
     private volatile static KubernetesClient kubernetesClient;
     private volatile static String namespace;
@@ -119,7 +121,7 @@ public class KubernetesMeshEnvListener implements MeshEnvListener {
 
             }
         } catch (Exception e) {
-            logger.error("Error occurred when listen kubernetes crd.", e);
+            logger.error(REGISTRY_ERROR_LISTEN_KUBERNETES, "", "", "Error occurred when listen kubernetes crd.", e);
         }
     }
 
@@ -178,7 +180,7 @@ public class KubernetesMeshEnvListener implements MeshEnvListener {
 
             }
         } catch (Exception e) {
-            logger.error("Error occurred when listen kubernetes crd.", e);
+            logger.error(REGISTRY_ERROR_LISTEN_KUBERNETES, "", "", "Error occurred when listen kubernetes crd.", e);
         }
     }
 
diff --git a/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.java b/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.java
index 087de56d31..9c6a49e5a4 100644
--- a/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.java
+++ b/dubbo-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.java
@@ -17,7 +17,7 @@
 package org.apache.dubbo.registry.kubernetes;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
 import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.common.utils.StringUtils;
 import org.apache.dubbo.registry.client.AbstractServiceDiscovery;
@@ -53,8 +53,12 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNABLE_FIND_SERVICE_KUBERNETES;
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNABLE_MATCH_KUBERNETES;
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNABLE_ACCESS_KUBERNETES;
+
 public class KubernetesServiceDiscovery extends AbstractServiceDiscovery {
-    private final Logger logger = LoggerFactory.getLogger(getClass());
+    private final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(getClass());
 
     private KubernetesClient kubernetesClient;
 
@@ -96,7 +100,7 @@ public class KubernetesServiceDiscovery extends AbstractServiceDiscovery {
                     "Please check your url config." +
                     " Master URL: " + config.getMasterUrl() +
                     " Hostname: " + currentHostname;
-            logger.error(message);
+            logger.error(REGISTRY_UNABLE_ACCESS_KUBERNETES,"","",message);
         } else {
             KubernetesMeshEnvListener.injectKubernetesEnv(kubernetesClient, namespace);
         }
@@ -403,8 +407,8 @@ public class KubernetesServiceDiscovery extends AbstractServiceDiscovery {
                 Pod pod = pods.get(address.getTargetRef().getName());
                 String ip = address.getIp();
                 if (pod == null) {
-                    logger.warn("Unable to match Kubernetes Endpoint address with Pod. " +
-                            "EndpointAddress Hostname: " + address.getTargetRef().getName());
+                    logger.warn(REGISTRY_UNABLE_MATCH_KUBERNETES, "", "", "Unable to match Kubernetes Endpoint address with Pod. " +
+                        "EndpointAddress Hostname: " + address.getTargetRef().getName());
                     continue;
                 }
                 instancePorts.forEach(port -> {
@@ -415,7 +419,7 @@ public class KubernetesServiceDiscovery extends AbstractServiceDiscovery {
                         serviceInstance.getMetadata().putAll(JSONObject.parseObject(properties, Map.class));
                         instances.add(serviceInstance);
                     } else {
-                        logger.warn("Unable to find Service Instance metadata in Pod Annotations. " +
+                        logger.warn(REGISTRY_UNABLE_FIND_SERVICE_KUBERNETES, "", "", "Unable to find Service Instance metadata in Pod Annotations. " +
                                 "Possibly cause: provider has not been initialized successfully. " +
                                 "EndpointAddress Hostname: " + address.getTargetRef().getName());
                     }
diff --git a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/initializer/DownloadZookeeperInitializer.java b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/initializer/DownloadZookeeperInitializer.java
index b5973d5a6f..ebdb835206 100644
--- a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/initializer/DownloadZookeeperInitializer.java
+++ b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/initializer/DownloadZookeeperInitializer.java
@@ -16,7 +16,7 @@
  */
 package org.apache.dubbo.test.check.registrycenter.initializer;
 
-import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
 import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.test.check.exception.DubboTestException;
 import org.apache.dubbo.test.check.registrycenter.context.ZookeeperContext;
@@ -37,12 +37,14 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DOWNLOAD_FILE;
+
 /**
  * Download zookeeper binary archive.
  */
 public class DownloadZookeeperInitializer extends ZookeeperInitializer {
 
-    private static final Logger logger = LoggerFactory.getLogger(DownloadZookeeperInitializer.class);
+    private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(DownloadZookeeperInitializer.class);
 
     /**
      * The zookeeper binary file name format.
@@ -167,7 +169,7 @@ public class DownloadZookeeperInitializer extends ZookeeperInitializer {
 
             @Override
             public void onThrowable(Throwable t) {
-                logger.warn("Failed to download the file, download url: " + url);
+                logger.warn(REGISTRY_FAILED_DOWNLOAD_FILE, "", "", "Failed to download the file, download url: " + url);
                 super.onThrowable(t);
             }
         });
diff --git a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/processor/ZookeeperUnixProcessor.java b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/processor/ZookeeperUnixProcessor.java
index c2600319e3..0ef5a6cbc8 100644
--- a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/processor/ZookeeperUnixProcessor.java
+++ b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/registrycenter/processor/ZookeeperUnixProcessor.java
@@ -16,7 +16,7 @@
  */
 package org.apache.dubbo.test.check.registrycenter.processor;
 
-import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
 import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.test.check.exception.DubboTestException;
 import org.apache.dubbo.test.check.registrycenter.Context;
@@ -29,12 +29,15 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.regex.Pattern;
 
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_START_ZOOKEEPER;
+import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_STOP_ZOOKEEPER;
+
 /**
  * The abstract implementation of {@link Processor} is to provide some common methods on Unix OS.
  */
 public abstract class ZookeeperUnixProcessor implements Processor {
 
-    private static final Logger logger = LoggerFactory.getLogger(ZookeeperUnixProcessor.class);
+    private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(ZookeeperUnixProcessor.class);
 
     @Override
     public void process(Context context) throws DubboTestException {
@@ -47,7 +50,7 @@ public abstract class ZookeeperUnixProcessor implements Processor {
             try {
                 process.destroy();
             } catch (Throwable cause) {
-                logger.warn(String.format("Failed to kill the process, with client port %s !", clientPort), cause);
+                logger.warn(REGISTRY_FAILED_STOP_ZOOKEEPER, "", "", String.format("Failed to kill the process, with client port %s !", clientPort), cause);
             }
         }
     }
@@ -61,7 +64,7 @@ public abstract class ZookeeperUnixProcessor implements Processor {
         try (final BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream))) {
             String line;
             while ((line = reader.readLine()) != null) {
-                logger.error(line);
+                logger.error(REGISTRY_FAILED_START_ZOOKEEPER,"","",line);
             }
         } catch (IOException e) {
             /* eat quietly */