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 146e3e75..2d7fc2ac 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 @@ -30,34 +30,32 @@ public final class LoadTestAwareAppender implements TraceAppender { /** TraceAppender for non-pressure */ - private TraceAppender nonLoadTestTraceAppender; + private TimedRollingFileAppender nonLoadTestTraceAppender; /** TraceAppender for pressure*/ - private TraceAppender loadTestTraceAppender; + private TimedRollingFileAppender 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, - rollingPolicy, logReserveConfig); + TimedRollingFileAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName, + rollingPolicy, logReserveConfig); + TimedRollingFileAppender loadTestTraceAppender = new TimedRollingFileAppender( + "shadow" + File.separator + logName, rollingPolicy, logReserveConfig); return new LoadTestAwareAppender(nonLoadTestTraceAppender, loadTestTraceAppender); } @@ -85,4 +83,9 @@ public void cleanup() { nonLoadTestTraceAppender.cleanup(); 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 a13941e8..553a5f46 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