From 059e9117544c57016fbc88a16a37b67830535c18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=B7=BC=E6=B7=BC?= <lmm01746983@antgroup.com>
Date: Thu, 4 Jul 2024 16:18:47 +0800
Subject: [PATCH 1/2] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97?=
 =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E7=AD=96=E7=95=A5=E9=80=BB=E8=BE=91:=20=20?=
 =?UTF-8?q?=201.1:=20TimedRollingFileAppender=E6=96=B0=E5=A2=9E=E6=96=B9?=
 =?UTF-8?q?=E6=B3=95=20resetTimedRollingFilleConfig(String=20datePattern),?=
 =?UTF-8?q?=E5=8F=AF=E6=A0=B9=E6=8D=AE=E6=97=A5=E5=BF=97=E6=BB=9A=E5=8A=A8?=
 =?UTF-8?q?=E7=AD=96=E7=95=A5=E5=AF=B9=E6=97=A5=E5=BF=97=E8=BF=9B=E8=A1=8C?=
 =?UTF-8?q?=E5=8A=A8=E6=80=81=E9=85=8D=E7=BD=AE=20=20=201.2:=20LoadTestAwa?=
 =?UTF-8?q?reAppender=20=E6=96=B0=E5=A2=9Erest=E6=96=B9=E6=B3=95,=E6=A0=B9?=
 =?UTF-8?q?=E6=8D=AE=E6=97=A5=E6=9C=9F=E7=AD=96=E7=95=A5=E9=87=8D=E7=BD=AE?=
 =?UTF-8?q?nonLoadTestTraceAppender=E5=92=8CloadTestTraceAppender?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../appender/file/LoadTestAwareAppender.java  | 55 ++++++++-----------
 .../file/TimedRollingFileAppender.java        | 11 ++++
 2 files changed, 34 insertions(+), 32 deletions(-)

diff --git a/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java b/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java
index 146e3e75c..98e2053a9 100644
--- a/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java
+++ b/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java
@@ -21,68 +21,59 @@
 import java.io.File;
 import java.io.IOException;
 
-/**
- * LoadTestAwareAppender
- *
- * @author yangguanchao
- * @since 2017/06/25
- */
 public final class LoadTestAwareAppender implements TraceAppender {
+    private TimedRollingFileAppender nonLoadTestTraceAppender;
+    private TimedRollingFileAppender loadTestTraceAppender;
 
-    /** TraceAppender for non-pressure */
-    private TraceAppender nonLoadTestTraceAppender;
-    /** TraceAppender for pressure*/
-    private TraceAppender loadTestTraceAppender;
-
-    private LoadTestAwareAppender(TraceAppender nonLoadTestTraceAppender,
-                                  TraceAppender loadTestTraceAppender) {
+    private LoadTestAwareAppender(TimedRollingFileAppender nonLoadTestTraceAppender,
+                                  TimedRollingFileAppender loadTestTraceAppender) {
         this.nonLoadTestTraceAppender = nonLoadTestTraceAppender;
         this.loadTestTraceAppender = loadTestTraceAppender;
     }
 
     public static LoadTestAwareAppender createLoadTestAwareTimedRollingFileAppender(String logName,
                                                                                     boolean append) {
-        TraceAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName, append);
-        TraceAppender loadTestTraceAppender = new TimedRollingFileAppender("shadow"
-                                                                           + File.separator
-                                                                           + logName, append);
+        TimedRollingFileAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
+            append);
+        TimedRollingFileAppender loadTestTraceAppender = new TimedRollingFileAppender(
+            "shadow" + File.separator + logName, append);
         return new LoadTestAwareAppender(nonLoadTestTraceAppender, loadTestTraceAppender);
     }
 
     public static LoadTestAwareAppender createLoadTestAwareTimedRollingFileAppender(String logName,
                                                                                     String rollingPolicy,
                                                                                     String logReserveConfig) {
-        TraceAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
-            rollingPolicy, logReserveConfig);
-        TraceAppender loadTestTraceAppender = new TimedRollingFileAppender("shadow"
-                                                                           + File.separator
-                                                                           + logName,
+        TimedRollingFileAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
             rollingPolicy, logReserveConfig);
+        TimedRollingFileAppender loadTestTraceAppender = new TimedRollingFileAppender(
+            "shadow" + File.separator + logName, rollingPolicy, logReserveConfig);
         return new LoadTestAwareAppender(nonLoadTestTraceAppender, loadTestTraceAppender);
     }
 
     public void append(String log, boolean loadTest) throws IOException {
         if (loadTest) {
-            loadTestTraceAppender.append(log);
+            this.loadTestTraceAppender.append(log);
         } else {
-            nonLoadTestTraceAppender.append(log);
+            this.nonLoadTestTraceAppender.append(log);
         }
     }
 
-    @Override
     public void flush() throws IOException {
-        nonLoadTestTraceAppender.flush();
-        loadTestTraceAppender.flush();
+        this.nonLoadTestTraceAppender.flush();
+        this.loadTestTraceAppender.flush();
     }
 
-    @Override
     public void append(String log) throws IOException {
         throw new UnsupportedOperationException();
     }
 
-    @Override
     public void cleanup() {
-        nonLoadTestTraceAppender.cleanup();
-        loadTestTraceAppender.cleanup();
+        this.nonLoadTestTraceAppender.cleanup();
+        this.loadTestTraceAppender.cleanup();
+    }
+
+    public void reset(String datePattern) {
+        nonLoadTestTraceAppender.resetTimedRollingFilleConfig(datePattern);
+        loadTestTraceAppender.resetTimedRollingFilleConfig(datePattern);
     }
-}
+}
\ No newline at end of file
diff --git a/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/TimedRollingFileAppender.java b/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/TimedRollingFileAppender.java
index a13941e85..553a5f46e 100644
--- a/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/TimedRollingFileAppender.java
+++ b/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/TimedRollingFileAppender.java
@@ -131,6 +131,17 @@ public TimedRollingFileAppender(String file, int bufferSize, boolean append,
         TracerDaemon.watch(this);
     }
 
+    public void resetTimedRollingFilleConfig(String datePattern) {
+        this.datePattern = datePattern;
+        sdf = new SimpleDateFormat(this.datePattern);
+        rc.setType(computeCheckPeriod());
+        scheduledFilename = fileName + sdf.format(new Date(logFile.lastModified()));
+        TracerDaemon.watch(this);
+        //重置 nextCheck
+        now.setTime(System.currentTimeMillis());
+        this.nextCheck = rc.getNextCheckMillis(now);
+    }
+
     /**
      * Determine if RollOver should be done now
      * @return true:Now RollOver

From dba75b12c2d3b67adb085fcee381b5dd55dd04ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=B7=BC=E6=B7=BC?= <lmm01746983@antgroup.com>
Date: Fri, 5 Jul 2024 18:13:37 +0800
Subject: [PATCH 2/2] =?UTF-8?q?1.=E8=BF=98=E5=8E=9F=E6=B3=A8=E9=87=8A=202.?=
 =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../appender/file/LoadTestAwareAppender.java  | 32 +++++++++++++------
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java b/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java
index 98e2053a9..2d7fc2ac7 100644
--- a/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java
+++ b/tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java
@@ -21,8 +21,17 @@
 import java.io.File;
 import java.io.IOException;
 
+/**
+ * LoadTestAwareAppender
+ *
+ * @author yangguanchao
+ * @since 2017/06/25
+ */
 public final class LoadTestAwareAppender implements TraceAppender {
+
+    /** TraceAppender for non-pressure */
     private TimedRollingFileAppender nonLoadTestTraceAppender;
+    /** TraceAppender for pressure*/
     private TimedRollingFileAppender loadTestTraceAppender;
 
     private LoadTestAwareAppender(TimedRollingFileAppender nonLoadTestTraceAppender,
@@ -34,9 +43,9 @@ private LoadTestAwareAppender(TimedRollingFileAppender nonLoadTestTraceAppender,
     public static LoadTestAwareAppender createLoadTestAwareTimedRollingFileAppender(String logName,
                                                                                     boolean append) {
         TimedRollingFileAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
-            append);
+                append);
         TimedRollingFileAppender loadTestTraceAppender = new TimedRollingFileAppender(
-            "shadow" + File.separator + logName, append);
+                "shadow" + File.separator + logName, append);
         return new LoadTestAwareAppender(nonLoadTestTraceAppender, loadTestTraceAppender);
     }
 
@@ -44,32 +53,35 @@ public static LoadTestAwareAppender createLoadTestAwareTimedRollingFileAppender(
                                                                                     String rollingPolicy,
                                                                                     String logReserveConfig) {
         TimedRollingFileAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
-            rollingPolicy, logReserveConfig);
+                rollingPolicy, logReserveConfig);
         TimedRollingFileAppender loadTestTraceAppender = new TimedRollingFileAppender(
-            "shadow" + File.separator + logName, rollingPolicy, logReserveConfig);
+                "shadow" + File.separator + logName, rollingPolicy, logReserveConfig);
         return new LoadTestAwareAppender(nonLoadTestTraceAppender, loadTestTraceAppender);
     }
 
     public void append(String log, boolean loadTest) throws IOException {
         if (loadTest) {
-            this.loadTestTraceAppender.append(log);
+            loadTestTraceAppender.append(log);
         } else {
-            this.nonLoadTestTraceAppender.append(log);
+            nonLoadTestTraceAppender.append(log);
         }
     }
 
+    @Override
     public void flush() throws IOException {
-        this.nonLoadTestTraceAppender.flush();
-        this.loadTestTraceAppender.flush();
+        nonLoadTestTraceAppender.flush();
+        loadTestTraceAppender.flush();
     }
 
+    @Override
     public void append(String log) throws IOException {
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public void cleanup() {
-        this.nonLoadTestTraceAppender.cleanup();
-        this.loadTestTraceAppender.cleanup();
+        nonLoadTestTraceAppender.cleanup();
+        loadTestTraceAppender.cleanup();
     }
 
     public void reset(String datePattern) {