This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.1 by this push:
     new b319fce427 3.1-Error code is managed with constants (#10771) (#10869)
b319fce427 is described below

commit b319fce427b70b642b98e7d50b91e5ac377f1f8c
Author: cnjxzhao <[email protected]>
AuthorDate: Thu Nov 3 07:34:30 2022 +0800

    3.1-Error code is managed with constants (#10771) (#10869)
---
 .../common/constants/LoggerCodeConstants.java      |  2 ++
 .../dubbo/registry/ListenerRegistryWrapper.java    |  4 ++-
 .../apache/dubbo/registry/RegistryNotifier.java    |  3 ++-
 .../registry/client/AbstractServiceDiscovery.java  | 12 +++++----
 .../registry/client/ServiceDiscoveryRegistry.java  |  5 ++--
 .../client/ServiceDiscoveryRegistryDirectory.java  | 22 ++++++++--------
 .../listener/ServiceInstancesChangedListener.java  | 13 +++++-----
 .../client/metadata/MetadataServiceDelegation.java |  5 ++--
 .../metadata/MetadataServiceNameMapping.java       |  6 +++--
 .../registry/client/metadata/MetadataUtils.java    | 12 +++++----
 .../DefaultMigrationAddressComparator.java         |  4 ++-
 .../client/migration/MigrationInvoker.java         |  9 ++++---
 .../client/migration/MigrationRuleHandler.java     | 11 +++++---
 .../client/migration/MigrationRuleListener.java    | 30 ++++++++++++----------
 .../registry/integration/RegistryDirectory.java    | 14 +++++-----
 .../registry/integration/RegistryProtocol.java     | 14 +++++-----
 .../dubbo/registry/support/AbstractRegistry.java   |  7 ++---
 .../dubbo/registry/support/FailbackRegistry.java   | 26 ++++++++++---------
 .../dubbo/registry/support/RegistryManager.java    |  7 ++---
 .../apache/dubbo/registry/nacos/NacosRegistry.java |  2 +-
 20 files changed, 120 insertions(+), 88 deletions(-)

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 1a6bf2bcab..4d8a6120b2 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
@@ -152,6 +152,8 @@ public interface LoggerCodeConstants {
 
     String REGISTRY_SOCKET_EXCEPTION = "1-38";
 
+    String REGISTRY_FAILED_LOAD_METADATA = "1-39";
+
     // cluster module
     String CLUSTER_FAILED_SITE_SELECTION = "2-1";
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/ListenerRegistryWrapper.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/ListenerRegistryWrapper.java
index c9cdc67773..540e93f394 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/ListenerRegistryWrapper.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/ListenerRegistryWrapper.java
@@ -26,6 +26,8 @@ import org.apache.dubbo.common.utils.UrlUtils;
 import java.util.List;
 import java.util.function.Consumer;
 
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
+
 public class ListenerRegistryWrapper implements Registry {
     private static final ErrorTypeAwareLogger logger = 
LoggerFactory.getErrorTypeAwareLogger(ListenerRegistryWrapper.class);
 
@@ -123,7 +125,7 @@ public class ListenerRegistryWrapper implements Registry {
                     try {
                         consumer.accept(listener);
                     } catch (RuntimeException t) {
-                        logger.error(t.getMessage(), t);
+                        logger.error(REGISTRY_UNEXPECTED_EXCEPTION, "", "", 
t.getMessage(), t);
                         exception = t;
                     }
                 }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/RegistryNotifier.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/RegistryNotifier.java
index 452f919a03..168368690a 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/RegistryNotifier.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/RegistryNotifier.java
@@ -27,6 +27,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.DEFAULT_DELAY_EXECUTE_TIMES;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_NOTIFY_EVENT;
 
 public abstract class RegistryNotifier {
 
@@ -111,7 +112,7 @@ public abstract class RegistryNotifier {
                     }
                 }
             } catch (Throwable t) {
-                logger.error("Error occurred when notify directory. ", t);
+                logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "", "", "Error 
occurred when notify directory. ", t);
             }
         }
     }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java
index 0ccaa13043..fb6e8cb6d8 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java
@@ -40,6 +40,8 @@ import java.util.Set;
 import static 
org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;
 import static 
org.apache.dubbo.common.constants.CommonConstants.REGISTRY_LOCAL_FILE_CACHE_ENABLED;
 import static 
org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_FETCH_INSTANCE;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_LOAD_METADATA;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;
 import static org.apache.dubbo.metadata.RevisionResolver.EMPTY_REVISION;
 import static 
org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.EXPORTED_SERVICES_REVISION_PROPERTY_NAME;
@@ -96,7 +98,7 @@ public abstract class AbstractServiceDiscovery implements 
ServiceDiscovery {
         }
         this.serviceInstance = createServiceInstance(this.metadataInfo);
         if (!isValidInstance(this.serviceInstance)) {
-            logger.warn("No valid instance found, stop registering instance 
address to registry.");
+            logger.warn(REGISTRY_FAILED_FETCH_INSTANCE, "", "", "No valid 
instance found, stop registering instance address to registry.");
             return;
         }
 
@@ -195,7 +197,7 @@ public abstract class AbstractServiceDiscovery implements 
ServiceDiscovery {
             }
 
             if (metadata == MetadataInfo.EMPTY) {
-                logger.error("Failed to get metadata for revision after 3 
retries, revision=" + revision);
+                logger.error(REGISTRY_FAILED_LOAD_METADATA, "", "", "Failed to 
get metadata for revision after 3 retries, revision=" + revision);
             } else {
                 metaCacheManager.put(revision, metadata);
             }
@@ -205,7 +207,7 @@ public abstract class AbstractServiceDiscovery implements 
ServiceDiscovery {
 
     @Override
     public MetadataInfo getRemoteMetadata(String revision) {
-       return metaCacheManager.get(revision);
+        return metaCacheManager.get(revision);
     }
 
     @Override
@@ -242,7 +244,7 @@ public abstract class AbstractServiceDiscovery implements 
ServiceDiscovery {
 
     @Override
     public List<URL> lookup(URL url) {
-       throw new UnsupportedOperationException("Service discovery 
implementation does not support lookup of url list.");
+        throw new UnsupportedOperationException("Service discovery 
implementation does not support lookup of url list.");
     }
 
     protected void doUpdate(ServiceInstance serviceInstance) throws 
RuntimeException {
@@ -310,7 +312,7 @@ public abstract class AbstractServiceDiscovery implements 
ServiceDiscovery {
         }
         StringBuilder stringBuilder = new StringBuilder(128);
         Optional<ApplicationConfig> application = 
applicationModel.getApplicationConfigManager().getApplication();
-        if(application.isPresent()) {
+        if (application.isPresent()) {
             stringBuilder.append(application.get().getName());
             stringBuilder.append(".");
         }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
index 098f6453a5..81c138d6fa 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
@@ -41,6 +41,7 @@ import java.util.concurrent.locks.ReentrantLock;
 import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_TYPE;
@@ -202,7 +203,7 @@ public class ServiceDiscoveryRegistry extends 
FailbackRegistry {
                 subscribedServices = 
serviceNameMapping.getAndListen(this.getUrl(), url, mappingListener);
                 mappingListeners.put(url.getProtocolServiceKey(), 
mappingListener);
             } catch (Exception e) {
-                logger.warn("Cannot find app mapping for service " + 
url.getServiceInterface() + ", will not migrate.", e);
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Cannot 
find app mapping for service " + url.getServiceInterface() + ", will not 
migrate.", e);
             }
 
             if (CollectionUtils.isEmpty(subscribedServices)) {
@@ -365,7 +366,7 @@ public class ServiceDiscoveryRegistry extends 
FailbackRegistry {
             logger.info("Received mapping notification from meta server, " + 
event);
 
             if (stopped) {
-                logger.warn("Listener has been stopped, ignore mapping 
notification, check why listener is not removed.");
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Listener 
has been stopped, ignore mapping notification, check why listener is not 
removed.");
                 return;
             }
             Set<String> newApps = event.getApps();
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
index a3e68cdbb6..fe98e100f4 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
@@ -61,6 +61,8 @@ import java.util.stream.Collectors;
 import static org.apache.dubbo.common.constants.CommonConstants.DISABLED_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.ENABLED_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_FAILED_DESTROY_INVOKER;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_FAILED_REFER_INVOKER;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_UNSUPPORTED;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_HASHMAP_LOAD_FACTOR;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;
@@ -229,14 +231,14 @@ public class ServiceDiscoveryRegistryDirectory<T> extends 
DynamicDirectory<T> {
         this.originalUrls = invokerUrls;
 
         if (invokerUrls.size() == 1 && 
EMPTY_PROTOCOL.equals(invokerUrls.get(0).getProtocol())) {
-            logger.warn("Received url with EMPTY protocol, will clear all 
available addresses.");
+            logger.warn(PROTOCOL_UNSUPPORTED, "", "", "Received url with EMPTY 
protocol, will clear all available addresses.");
             this.forbidden = true; // Forbid to access
             routerChain.setInvokers(BitList.emptyList());
             destroyAllInvokers(); // Close all invokers
         } else {
             this.forbidden = false; // Allow accessing
             if (CollectionUtils.isEmpty(invokerUrls)) {
-                logger.warn("Received empty url list, will ignore for 
protection purpose.");
+                logger.warn(PROTOCOL_UNSUPPORTED, "", "", "Received empty url 
list, will ignore for protection purpose.");
                 return;
             }
 
@@ -253,7 +255,7 @@ public class ServiceDiscoveryRegistryDirectory<T> extends 
DynamicDirectory<T> {
             logger.info("Refreshed invoker size " + newUrlInvokerMap.size());
 
             if (CollectionUtils.isEmptyMap(newUrlInvokerMap)) {
-                logger.error(new IllegalStateException("Cannot create invokers 
from url address list (total " + invokerUrls.size() + ")"));
+                logger.error(PROTOCOL_UNSUPPORTED, "", "", "Unsupported 
protocol.", new IllegalStateException("Cannot create invokers from url address 
list (total " + invokerUrls.size() + ")"));
                 return;
             }
             List<Invoker<T>> newInvokers = Collections.unmodifiableList(new 
ArrayList<>(newUrlInvokerMap.values()));
@@ -266,7 +268,7 @@ public class ServiceDiscoveryRegistryDirectory<T> extends 
DynamicDirectory<T> {
                 try {
                     destroyUnusedInvokers(oldUrlInvokerMap, newUrlInvokerMap); 
// Close the unused Invoker
                 } catch (Exception e) {
-                    logger.warn("destroyUnusedInvokers error. ", e);
+                    logger.warn(PROTOCOL_FAILED_DESTROY_INVOKER, "", "", 
"destroyUnusedInvokers error. ", e);
                 }
             }
         }
@@ -300,9 +302,9 @@ public class ServiceDiscoveryRegistryDirectory<T> extends 
DynamicDirectory<T> {
 
                 logger.error(PROTOCOL_UNSUPPORTED, "protocol extension does 
not installed", "", "Unsupported protocol.",
                     new IllegalStateException("Unsupported protocol " + 
instanceAddressURL.getProtocol() +
-                    " in notified url: " + instanceAddressURL + " from 
registry " + getUrl().getAddress() +
-                    " to consumer " + NetUtils.getLocalHost() + ", supported 
protocol: " +
-                    
getUrl().getOrDefaultFrameworkModel().getExtensionLoader(Protocol.class).getSupportedExtensions()));
+                        " in notified url: " + instanceAddressURL + " from 
registry " + getUrl().getAddress() +
+                        " to consumer " + NetUtils.getLocalHost() + ", 
supported protocol: " +
+                        
getUrl().getOrDefaultFrameworkModel().getExtensionLoader(Protocol.class).getSupportedExtensions()));
 
                 continue;
             }
@@ -351,7 +353,7 @@ public class ServiceDiscoveryRegistryDirectory<T> extends 
DynamicDirectory<T> {
                             }
                         }
                     } catch (Throwable t) {
-                        logger.error("Failed to refer invoker for interface:" 
+ serviceType + ",url:(" + instanceAddressURL + ")" + t.getMessage(), t);
+                        logger.error(PROTOCOL_FAILED_REFER_INVOKER, "", "", 
"Failed to refer invoker for interface:" + serviceType + ",url:(" + 
instanceAddressURL + ")" + t.getMessage(), t);
                     }
                     if (invoker != null) { // Put new invoker in cache
                         newUrlInvokerMap.put(protocolServiceKeyWithAddress, 
invoker);
@@ -425,7 +427,7 @@ public class ServiceDiscoveryRegistryDirectory<T> extends 
DynamicDirectory<T> {
                 try {
                     invoker.destroyAll();
                 } catch (Throwable t) {
-                    logger.warn("Failed to destroy service " + serviceKey + " 
to provider " + invoker.getUrl(), t);
+                    logger.warn(PROTOCOL_FAILED_DESTROY_INVOKER, "", "", 
"Failed to destroy service " + serviceKey + " to provider " + invoker.getUrl(), 
t);
                 }
             }
             localUrlInvokerMap.clear();
@@ -461,7 +463,7 @@ public class ServiceDiscoveryRegistryDirectory<T> extends 
DynamicDirectory<T> {
                         logger.debug("destroy invoker[" + invoker.getUrl() + 
"] success. ");
                     }
                 } catch (Exception e) {
-                    logger.warn("destroy invoker[" + invoker.getUrl() + "] 
failed. " + e.getMessage(), e);
+                    logger.warn(PROTOCOL_FAILED_DESTROY_INVOKER, "", "", 
"destroy invoker[" + invoker.getUrl() + "]failed." + e.getMessage(), e);
                 }
             }
         }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
index 8cb30728a3..a28387ce6b 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
@@ -56,6 +56,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_REFRESH_ADDRESS;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.ENABLE_EMPTY_PROTECTION_KEY;
 import static org.apache.dubbo.metadata.RevisionResolver.EMPTY_REVISION;
@@ -178,9 +179,9 @@ public class ServiceInstancesChangedListener {
                 try {
                     retryFuture = scheduler.schedule(new 
AddressRefreshRetryTask(retryPermission, event.getServiceName()), 10_000L, 
TimeUnit.MILLISECONDS);
                 } catch (Exception e) {
-                    logger.error("Error submitting async retry task.");
+                    logger.error(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Error 
submitting async retry task.");
                 }
-                logger.warn("Address refresh try task submitted");
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Address 
refresh try task submitted");
             }
 
             // return if all metadata is empty, this notification will not 
take effect.
@@ -290,12 +291,12 @@ public class ServiceInstancesChangedListener {
     protected boolean isRetryAndExpired(ServiceInstancesChangedEvent event) {
         if (event instanceof RetryServiceInstancesChangedEvent) {
             RetryServiceInstancesChangedEvent retryEvent = 
(RetryServiceInstancesChangedEvent) event;
-            logger.warn("Received address refresh retry event, " + 
retryEvent.getFailureRecordTime());
+            logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Received 
address refresh retry event, " + retryEvent.getFailureRecordTime());
             if (retryEvent.getFailureRecordTime() < lastRefreshTime && 
!hasEmptyMetadata) {
-                logger.warn("Ignore retry event, event time: " + 
retryEvent.getFailureRecordTime() + ", last refresh time: " + lastRefreshTime);
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Ignore 
retry event, event time: " + retryEvent.getFailureRecordTime() + ", last 
refresh time: " + lastRefreshTime);
                 return true;
             }
-            logger.warn("Retrying address notification...");
+            logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Retrying 
address notification...");
         }
         return false;
     }
@@ -339,7 +340,7 @@ public class ServiceInstancesChangedListener {
 
         if (emptyMetadataNum > 0) {
             builder.insert(0, emptyMetadataNum + "/" + 
revisionToInstances.size() + " revisions failed to get metadata from remote: ");
-            logger.error(builder.toString());
+            logger.error(REGISTRY_UNEXPECTED_EXCEPTION, "", "", 
builder.toString());
         } else {
             builder.insert(0, revisionToInstances.size() + " unique working 
revisions: ");
             logger.info(builder.toString());
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceDelegation.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceDelegation.java
index 5cd7556450..6047632919 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceDelegation.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceDelegation.java
@@ -44,6 +44,7 @@ import static java.util.Collections.emptySortedSet;
 import static java.util.Collections.unmodifiableSortedSet;
 import static org.apache.dubbo.common.URL.buildKey;
 import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_LOAD_METADATA;
 import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;
 
 /**
@@ -137,7 +138,7 @@ public class MetadataServiceDelegation implements 
MetadataService, Disposable {
         return unmodifiableSortedSet(getServiceURLs(getAllServiceURLs(), 
serviceKey, protocol));
     }
 
-    private Map<String, SortedSet<URL>> getAllServiceURLs () {
+    private Map<String, SortedSet<URL>> getAllServiceURLs() {
         List<ServiceDiscovery> serviceDiscoveries = 
registryManager.getServiceDiscoveries();
         Map<String, SortedSet<URL>> allServiceURLs = new HashMap<>();
         for (ServiceDiscovery sd : serviceDiscoveries) {
@@ -182,7 +183,7 @@ public class MetadataServiceDelegation implements 
MetadataService, Disposable {
         }
 
         if (logger.isWarnEnabled()) {
-            logger.warn("metadata not found for revision: " + revision);
+            logger.warn(REGISTRY_FAILED_LOAD_METADATA, "", "", "metadata not 
found for revision: " + revision);
         }
         return null;
     }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java
index d8cf5284e2..10f6fe1db3 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java
@@ -37,6 +37,8 @@ import java.util.Set;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;
 import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_ADDRESS_INVALID;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
 
 public class MetadataServiceNameMapping extends AbstractServiceNameMapping {
 
@@ -58,7 +60,7 @@ public class MetadataServiceNameMapping extends 
AbstractServiceNameMapping {
     @Override
     public boolean map(URL url) {
         if 
(CollectionUtils.isEmpty(applicationModel.getApplicationConfigManager().getMetadataConfigs()))
 {
-            logger.warn("No valid metadata config center found for mapping 
report.");
+            logger.warn(REGISTRY_ADDRESS_INVALID, "", "", "No valid metadata 
config center found for mapping report.");
             return false;
         }
         String serviceInterface = url.getServiceInterface();
@@ -99,7 +101,7 @@ public class MetadataServiceNameMapping extends 
AbstractServiceNameMapping {
                 }
             } catch (Exception e) {
                 result = false;
-                logger.warn("Failed registering mapping to remote." + 
metadataReport, e);
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Failed 
registering mapping to remote." + metadataReport, e);
             }
         }
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataUtils.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataUtils.java
index c5129b2f88..91bbdfbec6 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataUtils.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataUtils.java
@@ -18,7 +18,7 @@ package org.apache.dubbo.registry.client.metadata;
 
 import org.apache.dubbo.common.URL;
 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.common.utils.CollectionUtils;
 import org.apache.dubbo.common.utils.StringUtils;
@@ -48,16 +48,18 @@ import static 
org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;
 import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
 import static 
org.apache.dubbo.common.constants.CommonConstants.PROXY_CLASS_REF;
 import static 
org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_CREATE_INSTANCE;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_LOAD_METADATA;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;
 import static 
org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URLS_PROPERTY_NAME;
 
 public class MetadataUtils {
-    public static final Logger logger = 
LoggerFactory.getLogger(MetadataUtils.class);
+    public static final ErrorTypeAwareLogger logger = 
LoggerFactory.getErrorTypeAwareLogger(MetadataUtils.class);
 
     public static void publishServiceDefinition(URL url, ServiceDescriptor 
serviceDescriptor, ApplicationModel applicationModel) {
         if (getMetadataReports(applicationModel).size() == 0) {
             String msg = "Remote Metadata Report Server is not provided or 
unavailable, will stop registering service definition to remote center!";
-            logger.warn(msg);
+            logger.warn(REGISTRY_FAILED_LOAD_METADATA, "", "", msg);
             return;
         }
 
@@ -104,7 +106,7 @@ public class MetadataUtils {
             }
         } catch (Exception e) {
             //ignore error
-            logger.error("publish service definition metadata error.", e);
+            logger.error(REGISTRY_FAILED_CREATE_INSTANCE, "", "", "publish 
service definition metadata error.", e);
         }
     }
 
@@ -174,7 +176,7 @@ public class MetadataUtils {
                 }
             }
         } catch (Exception e) {
-            logger.error("Failed to get app metadata for revision " + revision 
+ " for type " + metadataType + " from instance " + instance.getAddress(), e);
+            logger.error(REGISTRY_FAILED_LOAD_METADATA, "", "", "Failed to get 
app metadata for revision " + revision + " for type " + metadataType + " from 
instance " + instance.getAddress(), e);
             metadataInfo = null;
         }
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java
index 0c3d90a827..ca2cb524dd 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java
@@ -29,6 +29,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_INCORRECT_PARAMETER_VALUES;
+
 public class DefaultMigrationAddressComparator implements 
MigrationAddressComparator {
     private static final ErrorTypeAwareLogger logger = 
LoggerFactory.getErrorTypeAwareLogger(DefaultMigrationAddressComparator.class);
     private static final String MIGRATION_THRESHOLD = 
"dubbo.application.migration.threshold";
@@ -73,7 +75,7 @@ public class DefaultMigrationAddressComparator implements 
MigrationAddressCompar
         try {
             threshold = Float.parseFloat(rawThreshold);
         } catch (Exception e) {
-            logger.error("Invalid migration threshold " + rawThreshold);
+            logger.error(PROTOCOL_INCORRECT_PARAMETER_VALUES, "", "", "Invalid 
migration threshold " + rawThreshold);
             threshold = DEFAULT_THREAD;
         }
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationInvoker.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationInvoker.java
index fc525e9f87..9fbe66fa0a 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationInvoker.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationInvoker.java
@@ -18,7 +18,7 @@ package org.apache.dubbo.registry.client.migration;
 
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.constants.CommonConstants;
-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.status.reporter.FrameworkStatusReportService;
 import org.apache.dubbo.common.utils.CollectionUtils;
@@ -44,11 +44,12 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeUnit;
 
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_NOTIFY_EVENT;
 import static 
org.apache.dubbo.registry.client.migration.model.MigrationStep.APPLICATION_FIRST;
 import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
 
 public class MigrationInvoker<T> implements MigrationClusterInvoker<T> {
-    private Logger logger = LoggerFactory.getLogger(MigrationInvoker.class);
+    private ErrorTypeAwareLogger logger = 
LoggerFactory.getErrorTypeAwareLogger(MigrationInvoker.class);
 
     private URL url;
     private URL consumerUrl;
@@ -255,7 +256,7 @@ public class MigrationInvoker<T> implements 
MigrationClusterInvoker<T> {
             try {
                 Thread.sleep(delay * 1000L);
             } catch (InterruptedException e) {
-                logger.error("Interrupted when waiting for address notify!" + 
e);
+                logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "", "", 
"Interrupted when waiting for address notify!" + e);
             }
         } else {
             // do not wait address notify by default
@@ -264,7 +265,7 @@ public class MigrationInvoker<T> implements 
MigrationClusterInvoker<T> {
         try {
             latch.await(delay, TimeUnit.SECONDS);
         } catch (InterruptedException e) {
-            logger.error("Interrupted when waiting for address notify!" + e);
+            logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "", "", "Interrupted 
when waiting for address notify!" + e);
         }
     }
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java
index 6ce0f270e5..9f923f29f9 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java
@@ -23,6 +23,9 @@ import 
org.apache.dubbo.common.status.reporter.FrameworkStatusReportService;
 import org.apache.dubbo.registry.client.migration.model.MigrationRule;
 import org.apache.dubbo.registry.client.migration.model.MigrationStep;
 
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_NO_PARAMETERS_URL;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
+
 public class MigrationRuleHandler<T> {
     public static final String DUBBO_SERVICEDISCOVERY_MIGRATION = 
"dubbo.application.migration.step";
     private static final ErrorTypeAwareLogger logger = 
LoggerFactory.getErrorTypeAwareLogger(MigrationRuleHandler.class);
@@ -51,7 +54,7 @@ public class MigrationRuleHandler<T> {
             step = rule.getStep(consumerURL);
             threshold = rule.getThreshold(consumerURL);
         } catch (Exception e) {
-            logger.error("Failed to get step and threshold info from rule: " + 
rule, e);
+            logger.error(REGISTRY_NO_PARAMETERS_URL, "", "", "Failed to get 
step and threshold info from rule: " + rule, e);
         }
 
         if (refreshInvoker(step, threshold, rule)) {
@@ -86,8 +89,8 @@ public class MigrationRuleHandler<T> {
                 report(step, originStep, "true");
             } else {
                 // migrate failed, do not save new step and rule
-                logger.warn("Migrate to " + step + " mode failed. Probably not 
satisfy the threshold you set "
-                        + threshold + ". Please try re-publish configuration 
if you still after check.");
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Migrate to 
" + step + " mode failed. Probably not satisfy the threshold you set "
+                    + threshold + ". Please try re-publish configuration if 
you still after check.");
                 report(step, originStep, "false");
             }
 
@@ -104,7 +107,7 @@ public class MigrationRuleHandler<T> {
         if (reportService.hasReporter()) {
             reportService.reportMigrationStepStatus(
                 
reportService.createMigrationStepReport(consumerURL.getServiceInterface(), 
consumerURL.getVersion(),
-                            consumerURL.getGroup(), 
String.valueOf(originStep), String.valueOf(step), success));
+                    consumerURL.getGroup(), String.valueOf(originStep), 
String.valueOf(step), success));
         }
     }
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleListener.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleListener.java
index 9623e8ae7e..946eea7bb5 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleListener.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/migration/MigrationRuleListener.java
@@ -49,14 +49,18 @@ import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_THREAD_INTERRUPTED_EXCEPTION;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_INCORRECT_PARAMETER_VALUES;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_EMPTY_ADDRESS;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
 import static org.apache.dubbo.common.constants.RegistryConstants.INIT;
 
 /**
  * Listens to {@MigrationRule} from Config Center.
- *
+ * <p>
  * - Migration rule is of consumer application scope.
  * - Listener is shared among all invokers (interfaces), it keeps the relation 
between interface and handler.
- *
+ * <p>
  * There are two execution points:
  * - Refer, invoker behaviour is determined with default rule.
  * - Rule change, invoker behaviour is changed according to the newly received 
rule.
@@ -104,7 +108,7 @@ public class MigrationRuleListener implements 
RegistryProtocolListener, Configur
             setRawRule(rawRule);
         } else {
             if (logger.isWarnEnabled()) {
-                logger.warn("Using default configuration rule because config 
center is not configured!");
+                logger.warn(REGISTRY_EMPTY_ADDRESS, "", "", "Using default 
configuration rule because config center is not configured!");
             }
             setRawRule(INIT);
         }
@@ -131,7 +135,7 @@ public class MigrationRuleListener implements 
RegistryProtocolListener, Configur
         try {
             delay = Integer.parseInt(delayStr);
         } catch (Exception e) {
-            logger.warn("Invalid migration delay param " + delayStr);
+            logger.warn(PROTOCOL_INCORRECT_PARAMETER_VALUES, "", "", "Invalid 
migration delay param " + delayStr);
         }
         return delay;
     }
@@ -142,12 +146,12 @@ public class MigrationRuleListener implements 
RegistryProtocolListener, Configur
         if (StringUtils.isEmpty(rawRule)) {
             // fail back to startup status
             rawRule = INIT;
-            //logger.warn("Received empty migration rule, will ignore.");
+            //logger.warn(PROTOCOL_INCORRECT_PARAMETER_VALUES, "", "", 
"Received empty migration rule, will ignore.");
         }
         try {
             ruleQueue.put(rawRule);
         } catch (InterruptedException e) {
-            logger.error("Put rawRule to rule management queue failed. 
rawRule: " + rawRule, e);
+            logger.error(COMMON_THREAD_INTERRUPTED_EXCEPTION, "", "", "Put 
rawRule to rule management queue failed. rawRule: " + rawRule, e);
         }
 
         if (executorSubmit.compareAndSet(false, true)) {
@@ -160,7 +164,7 @@ public class MigrationRuleListener implements 
RegistryProtocolListener, Configur
                             Thread.sleep(1000);
                         }
                     } catch (InterruptedException e) {
-                        logger.error("Poll Rule from config center failed.", 
e);
+                        logger.error(COMMON_THREAD_INTERRUPTED_EXCEPTION, "", 
"", "Poll Rule from config center failed.", e);
                     }
                     if (StringUtils.isEmpty(rule)) {
                         continue;
@@ -179,10 +183,10 @@ public class MigrationRuleListener implements 
RegistryProtocolListener, Configur
                             ExecutorService executorService = 
Executors.newFixedThreadPool(100, new 
NamedThreadFactory("Dubbo-Invoker-Migrate"));
                             List<Future<?>> migrationFutures = new 
ArrayList<>(handlers.size());
                             handlers.forEach((_key, handler) -> {
-                               Future<?> future = executorService.submit(() -> 
{
+                                Future<?> future = executorService.submit(() 
-> {
                                     handler.doMigrate(this.rule);
                                 });
-                               migrationFutures.add(future);
+                                migrationFutures.add(future);
                             });
 
                             Throwable migrationException = null;
@@ -190,18 +194,18 @@ public class MigrationRuleListener implements 
RegistryProtocolListener, Configur
                                 try {
                                     future.get();
                                 } catch (InterruptedException ie) {
-                                    logger.warn("Interrupted while waiting for 
migration async task to finish.");
+                                    logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, 
"", "", "Interrupted while waiting for migration async task to finish.");
                                 } catch (ExecutionException ee) {
                                     migrationException = ee.getCause();
                                 }
                             }
                             if (migrationException != null) {
-                                logger.error("Migration async task failed.", 
migrationException);
+                                logger.error(REGISTRY_UNEXPECTED_EXCEPTION, 
"", "", "Migration async task failed.", migrationException);
                             }
                             executorService.shutdown();
                         }
                     } catch (Throwable t) {
-                        logger.error("Error occurred when migration.", t);
+                        logger.error(REGISTRY_UNEXPECTED_EXCEPTION, "", "", 
"Error occurred when migration.", t);
                     }
                 }
             });
@@ -222,7 +226,7 @@ public class MigrationRuleListener implements 
RegistryProtocolListener, Configur
             try {
                 tmpRule = MigrationRule.parse(rawRule);
             } catch (Exception e) {
-                logger.error("Failed to parse migration rule...", e);
+                logger.error(PROTOCOL_INCORRECT_PARAMETER_VALUES, "", "", 
"Failed to parse migration rule...", e);
             }
         }
         return tmpRule;
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java
index 25389e35e4..53fd6840fe 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java
@@ -290,7 +290,7 @@ public class RegistryDirectory<T> extends 
DynamicDirectory<T> {
             try {
                 destroyUnusedInvokers(oldUrlInvokerMap, newUrlInvokerMap); // 
Close the unused Invoker
             } catch (Exception e) {
-                logger.warn("destroyUnusedInvokers error. ", e);
+                logger.warn(REGISTRY_FAILED_DESTROY_SERVICE, "", "", 
"destroyUnusedInvokers error. ", e);
             }
 
             // notify invokers refreshed
@@ -346,7 +346,7 @@ public class RegistryDirectory<T> extends 
DynamicDirectory<T> {
                     routers.add(router);
                 }
             } catch (Throwable t) {
-                logger.error("convert router url to router error, url: " + 
url, t);
+                logger.error(PROXY_FAILED_CONVERT_URL, "", "", "convert router 
url to router error, url:" + url, t);
             }
         }
 
@@ -441,9 +441,9 @@ public class RegistryDirectory<T> extends 
DynamicDirectory<T> {
 
             logger.error(PROTOCOL_UNSUPPORTED, "protocol extension does not 
installed", "", "Unsupported protocol.",
                 new IllegalStateException("Unsupported protocol " + 
providerUrl.getProtocol() +
-                " in notified url: " + providerUrl + " from registry " + 
getUrl().getAddress() +
-                " to consumer " + NetUtils.getLocalHost() + ", supported 
protocol: " +
-                
getUrl().getOrDefaultFrameworkModel().getExtensionLoader(Protocol.class).getSupportedExtensions()));
+                    " in notified url: " + providerUrl + " from registry " + 
getUrl().getAddress() +
+                    " to consumer " + NetUtils.getLocalHost() + ", supported 
protocol: " +
+                    
getUrl().getOrDefaultFrameworkModel().getExtensionLoader(Protocol.class).getSupportedExtensions()));
 
             return false;
         }
@@ -578,7 +578,7 @@ public class RegistryDirectory<T> extends 
DynamicDirectory<T> {
                         logger.debug("destroy invoker[" + invoker.getUrl() + 
"] success. ");
                     }
                 } catch (Exception e) {
-                    logger.warn("destroy invoker[" + invoker.getUrl() + "] 
failed. " + e.getMessage(), e);
+                    logger.warn(REGISTRY_FAILED_DESTROY_SERVICE, "", "", 
"destroy invoker[" + invoker.getUrl() + "] failed. " + e.getMessage(), e);
                 }
             }
         }
@@ -605,7 +605,7 @@ public class RegistryDirectory<T> extends 
DynamicDirectory<T> {
         // 1-16 - Unsupported category in NotifyListener
         logger.warn(REGISTRY_UNSUPPORTED_CATEGORY, "", "",
             "Unsupported category " + category + " in notified url: " + url + 
" from registry " +
-            getUrl().getAddress() + " to consumer " + NetUtils.getLocalHost());
+                getUrl().getAddress() + " to consumer " + 
NetUtils.getLocalHost());
 
         return false;
     }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
index 05387f55a7..6a8449eac2 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
@@ -90,6 +90,8 @@ import static 
org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
 import static org.apache.dubbo.common.constants.FilterConstants.VALIDATION_KEY;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNSUPPORTED_CATEGORY;
 import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;
 import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;
 import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;
@@ -487,7 +489,7 @@ public class RegistryProtocol implements Protocol, 
ScopeModelAware {
         Map<String, Object> consumerAttribute = new 
HashMap<>(url.getAttributes());
         consumerAttribute.remove(REFER_KEY);
         String p = isEmpty(parameters.get(PROTOCOL_KEY)) ? CONSUMER : 
parameters.get(PROTOCOL_KEY);
-        URL consumerUrl = new ServiceConfigURL (
+        URL consumerUrl = new ServiceConfigURL(
             p,
             null,
             null,
@@ -570,7 +572,7 @@ public class RegistryProtocol implements Protocol, 
ScopeModelAware {
 
     public <T> void reRefer(ClusterInvoker<?> invoker, URL newSubscribeUrl) {
         if (!(invoker instanceof MigrationClusterInvoker)) {
-            logger.error("Only invoker type of MigrationClusterInvoker 
supports reRefer, current invoker is " + invoker.getClass());
+            logger.error(REGISTRY_UNSUPPORTED_CATEGORY, "", "", "Only invoker 
type of MigrationClusterInvoker supports reRefer, current invoker is " + 
invoker.getClass());
             return;
         }
 
@@ -743,7 +745,7 @@ public class RegistryProtocol implements Protocol, 
ScopeModelAware {
             String key = getCacheKey(originInvoker);
             ExporterChangeableWrapper<?> exporter = bounds.get(key);
             if (exporter == null) {
-                logger.warn(new IllegalStateException("error state, exporter 
should not be null"));
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "error 
state, exporter should not be null", new IllegalStateException("error state, 
exporter should not be null"));
                 return;
             }
             //The current, may have been merged many times
@@ -890,7 +892,7 @@ public class RegistryProtocol implements Protocol, 
ScopeModelAware {
             try {
                 registry.unregister(registerUrl);
             } catch (Throwable t) {
-                logger.warn(t.getMessage(), t);
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", 
t.getMessage(), t);
             }
             try {
                 if (subscribeUrl != null) {
@@ -913,7 +915,7 @@ public class RegistryProtocol implements Protocol, 
ScopeModelAware {
                     }
                 }
             } catch (Throwable t) {
-                logger.warn(t.getMessage(), t);
+                logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", 
t.getMessage(), t);
             }
 
             //TODO wait for shutdown timeout is a bit strange
@@ -922,7 +924,7 @@ public class RegistryProtocol implements Protocol, 
ScopeModelAware {
                 try {
                     exporter.unexport();
                 } catch (Throwable t) {
-                    logger.warn(t.getMessage(), t);
+                    logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", 
t.getMessage(), t);
                 }
             }, timeout, TimeUnit.MILLISECONDS);
         }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java
index 01a3e3e356..5749da821e 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java
@@ -66,6 +66,7 @@ import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAI
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DESTROY_UNREGISTER_URL;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_READ_WRITE_CACHE_FILE;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DELETE_LOCKFILE;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
 import static org.apache.dubbo.common.constants.RegistryConstants.ACCEPTS_KEY;
 import static 
org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;
 import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;
@@ -78,7 +79,7 @@ import static org.apache.dubbo.registry.Constants.USER_HOME;
 /**
  * <p>
  * Provides a fail-safe registry service backed by cache file. The 
consumer/provider can still find each other when registry center crashed.
- *
+ * <p>
  * (SPI, Prototype, ThreadSafe)
  */
 public abstract class AbstractRegistry implements Registry {
@@ -222,7 +223,7 @@ public abstract class AbstractRegistry implements Registry {
             }
 
             try (RandomAccessFile raf = new RandomAccessFile(lockfile, "rw");
-                FileChannel channel = raf.getChannel()) {
+                 FileChannel channel = raf.getChannel()) {
                 FileLock lock = channel.tryLock();
                 if (lock == null) {
 
@@ -565,7 +566,7 @@ public abstract class AbstractRegistry implements Registry {
                 registryCacheExecutor.schedule(() -> 
doSaveProperties(version), DEFAULT_INTERVAL_SAVE_PROPERTIES, 
TimeUnit.MILLISECONDS);
             }
         } catch (Throwable t) {
-            logger.warn(t.getMessage(), t);
+            logger.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", t.getMessage(), 
t);
         }
     }
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
index d17c0dae35..fa906cf4ca 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/FailbackRegistry.java
@@ -36,6 +36,8 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.TimeUnit;
 
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_NOTIFY_EVENT;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
 import static 
org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_PERIOD;
 import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_PERIOD_KEY;
 
@@ -208,8 +210,8 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
 
             // If the startup detection is opened, the Exception is thrown 
directly.
             boolean check = getUrl().getParameter(Constants.CHECK_KEY, true)
-                    && url.getParameter(Constants.CHECK_KEY, true)
-                    && (url.getPort() != 0);
+                && url.getParameter(Constants.CHECK_KEY, true)
+                && (url.getPort() != 0);
             boolean skipFailback = t instanceof SkipFailbackWrapperException;
             if (check || skipFailback) {
                 if (skipFailback) {
@@ -217,7 +219,7 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
                 }
                 throw new IllegalStateException("Failed to register " + url + 
" to registry " + getUrl().getAddress() + ", cause: " + t.getMessage(), t);
             } else {
-                logger.error("Failed to register " + url + ", waiting for 
retry, cause: " + t.getMessage(), t);
+                logger.error(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Failed to 
register " + url + ", waiting for retry, cause: " + t.getMessage(), t);
             }
 
             // Record a failed registration request to a failed list, retry 
regularly
@@ -257,8 +259,8 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
 
             // If the startup detection is opened, the Exception is thrown 
directly.
             boolean check = getUrl().getParameter(Constants.CHECK_KEY, true)
-                    && url.getParameter(Constants.CHECK_KEY, true)
-                    && (url.getPort() != 0);
+                && url.getParameter(Constants.CHECK_KEY, true)
+                && (url.getPort() != 0);
             boolean skipFailback = t instanceof SkipFailbackWrapperException;
             if (check || skipFailback) {
                 if (skipFailback) {
@@ -266,7 +268,7 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
                 }
                 throw new IllegalStateException("Failed to unregister " + url 
+ " to registry " + getUrl().getAddress() + ", cause: " + t.getMessage(), t);
             } else {
-                logger.error("Failed to unregister " + url + ", waiting for 
retry, cause: " + t.getMessage(), t);
+                logger.error(REGISTRY_UNEXPECTED_EXCEPTION, "", "", "Failed to 
unregister " + url + ", waiting for retry, cause: " + t.getMessage(), t);
             }
 
             // Record a failed registration request to a failed list, retry 
regularly
@@ -302,11 +304,11 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
             List<URL> urls = getCacheUrls(url);
             if (CollectionUtils.isNotEmpty(urls)) {
                 notify(url, listener, urls);
-                logger.error("Failed to subscribe " + url + ", Using cached 
list: " + urls + " from cache file: " + getCacheFile().getName() + ", cause: " 
+ t.getMessage(), t);
+                logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "", "", "Failed to 
subscribe " + url + ", Using cached list: " + urls + " from cache file: " + 
getCacheFile().getName() + ", cause: " + t.getMessage(), t);
             } else {
                 // If the startup detection is opened, the Exception is thrown 
directly.
                 boolean check = getUrl().getParameter(Constants.CHECK_KEY, 
true)
-                        && url.getParameter(Constants.CHECK_KEY, true);
+                    && url.getParameter(Constants.CHECK_KEY, true);
                 boolean skipFailback = t instanceof 
SkipFailbackWrapperException;
                 if (check || skipFailback) {
                     if (skipFailback) {
@@ -314,7 +316,7 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
                     }
                     throw new IllegalStateException("Failed to subscribe " + 
url + ", cause: " + t.getMessage(), t);
                 } else {
-                    logger.error("Failed to subscribe " + url + ", waiting for 
retry, cause: " + t.getMessage(), t);
+                    logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "", "", "Failed 
to subscribe " + url + ", waiting for retry, cause: " + t.getMessage(), t);
                 }
             }
 
@@ -335,7 +337,7 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
 
             // If the startup detection is opened, the Exception is thrown 
directly.
             boolean check = getUrl().getParameter(Constants.CHECK_KEY, true)
-                    && url.getParameter(Constants.CHECK_KEY, true);
+                && url.getParameter(Constants.CHECK_KEY, true);
             boolean skipFailback = t instanceof SkipFailbackWrapperException;
             if (check || skipFailback) {
                 if (skipFailback) {
@@ -343,7 +345,7 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
                 }
                 throw new IllegalStateException("Failed to unsubscribe " + url 
+ " to registry " + getUrl().getAddress() + ", cause: " + t.getMessage(), t);
             } else {
-                logger.error("Failed to unsubscribe " + url + ", waiting for 
retry, cause: " + t.getMessage(), t);
+                logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "", "", "Failed to 
unsubscribe " + url + ", waiting for retry, cause: " + t.getMessage(), t);
             }
 
             // Record a failed registration request to a failed list, retry 
regularly
@@ -363,7 +365,7 @@ public abstract class FailbackRegistry extends 
AbstractRegistry {
             doNotify(url, listener, urls);
         } catch (Exception t) {
             // Record a failed registration request to a failed list
-            logger.error("Failed to notify addresses for subscribe " + url + 
", cause: " + t.getMessage(), t);
+            logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "", "", "Failed to 
notify addresses for subscribe " + url + ", cause: " + t.getMessage(), t);
         }
     }
 
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/RegistryManager.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/RegistryManager.java
index 7a2e187a3f..9d46730594 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/RegistryManager.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/RegistryManager.java
@@ -37,6 +37,7 @@ import java.util.concurrent.locks.ReentrantLock;
 import java.util.stream.Collectors;
 
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_FETCH_INSTANCE;
+import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNEXPECTED_EXCEPTION;
 
 /**
  * Application Level, used to collect Registries
@@ -79,7 +80,7 @@ public class RegistryManager {
         registries.put(key, registry);
     }
 
-    public  List<ServiceDiscovery> getServiceDiscoveries() {
+    public List<ServiceDiscovery> getServiceDiscoveries() {
         return getRegistries()
             .stream()
             .filter(registry -> registry instanceof ServiceDiscoveryRegistry)
@@ -106,7 +107,7 @@ public class RegistryManager {
                 try {
                     registry.destroy();
                 } catch (Throwable e) {
-                    LOGGER.warn(e.getMessage(), e);
+                    LOGGER.warn(REGISTRY_UNEXPECTED_EXCEPTION, "", "", 
e.getMessage(), e);
                 }
             }
             registries.clear();
@@ -129,7 +130,7 @@ public class RegistryManager {
             // 1-12 Failed to fetch (server) instance since the registry 
instances have been destroyed.
             LOGGER.warn(REGISTRY_FAILED_FETCH_INSTANCE, "misuse of the 
methods", "",
                 "All registry instances have been destroyed, failed to fetch 
any instance. " +
-                "Usually, this means no need to try to do unnecessary 
redundant resource clearance, all registries has been taken care of.");
+                    "Usually, this means no need to try to do unnecessary 
redundant resource clearance, all registries has been taken care of.");
 
             return DEFAULT_NOP_REGISTRY;
         }
diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
index c9dcf509f1..2b5cb33804 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
@@ -537,7 +537,7 @@ public class NacosRegistry extends FailbackRegistry {
         try {
             this.namingService.shutdown();
         } catch (NacosException e) {
-            logger.warn("Unable to shutdown nacos naming service", e);
+            logger.warn(REGISTRY_NACOS_EXCEPTION, "", "", "Unable to shutdown 
nacos naming service", e);
         }
         this.nacosListeners.clear();
     }

Reply via email to