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

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


The following commit(s) were added to refs/heads/3.0 by this push:
     new bc638b5748 Change to thread-safe date processing class (#9936)
bc638b5748 is described below

commit bc638b5748aa6b71327e6cc84885316368648162
Author: Oliver <[email protected]>
AuthorDate: Tue Apr 19 13:40:32 2022 +0800

    Change to thread-safe date processing class (#9936)
    
    * Change to thread-safe date processing class
    
    * restore package order
---
 .../org/apache/dubbo/rpc/support/AccessLogData.java    | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java
 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java
index 455a47fe02..33bf46714e 100644
--- 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java
+++ 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java
@@ -16,32 +16,30 @@
  */
 package org.apache.dubbo.rpc.support;
 
+
 import org.apache.dubbo.common.utils.StringUtils;
 import org.apache.dubbo.rpc.Invocation;
 import org.apache.dubbo.rpc.Invoker;
 import org.apache.dubbo.rpc.RpcContext;
-
 import com.alibaba.fastjson.JSON;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
 /**
- * AccessLogData is a container for log event data. In internally uses map and 
store each filed of log as value. It
- * does not generate any dynamic value e.g. time stamp, local jmv machine host 
address etc. It does not allow any null
+ * AccessLogData is a container for log event data. In internally uses map and 
store each field of log as value. It
+ * does not generate any dynamic value e.g. time stamp, local jvm machine host 
address etc. It does not allow any null
  * or empty key.
  *
- * Note: since its date formatter is a singleton, make sure to run it in 
single thread only.
  */
 public final class AccessLogData {
 
     private static final String MESSAGE_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
-    private static final DateFormat MESSAGE_DATE_FORMATTER = new 
SimpleDateFormat(MESSAGE_DATE_FORMAT);
-
+    private static final DateTimeFormatter MESSAGE_DATE_FORMATTER = 
DateTimeFormatter.ofPattern(MESSAGE_DATE_FORMAT);
     private static final String VERSION = "version";
     private static final String GROUP = "group";
     private static final String SERVICE = "service";
@@ -194,7 +192,7 @@ public final class AccessLogData {
         StringBuilder sn = new StringBuilder();
 
         sn.append('[')
-                .append(MESSAGE_DATE_FORMATTER.format(getInvocationTime()))
+                
.append(LocalDateTime.ofInstant(getInvocationTime().toInstant(), 
ZoneId.systemDefault()).format(MESSAGE_DATE_FORMATTER))
                 .append("] ")
                 .append(get(REMOTE_HOST))
                 .append(':')

Reply via email to