Skip to content

Commit 059e911

Browse files
author
淼淼
committed
1.修改日志滚动策略逻辑:
1.1: TimedRollingFileAppender新增方法 resetTimedRollingFilleConfig(String datePattern),可根据日志滚动策略对日志进行动态配置 1.2: LoadTestAwareAppender 新增rest方法,根据日期策略重置nonLoadTestTraceAppender和loadTestTraceAppender
1 parent 10639f1 commit 059e911

File tree

2 files changed

+34
-32
lines changed

2 files changed

+34
-32
lines changed

tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/LoadTestAwareAppender.java

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,68 +21,59 @@
2121
import java.io.File;
2222
import java.io.IOException;
2323

24-
/**
25-
* LoadTestAwareAppender
26-
*
27-
* @author yangguanchao
28-
* @since 2017/06/25
29-
*/
3024
public final class LoadTestAwareAppender implements TraceAppender {
25+
private TimedRollingFileAppender nonLoadTestTraceAppender;
26+
private TimedRollingFileAppender loadTestTraceAppender;
3127

32-
/** TraceAppender for non-pressure */
33-
private TraceAppender nonLoadTestTraceAppender;
34-
/** TraceAppender for pressure*/
35-
private TraceAppender loadTestTraceAppender;
36-
37-
private LoadTestAwareAppender(TraceAppender nonLoadTestTraceAppender,
38-
TraceAppender loadTestTraceAppender) {
28+
private LoadTestAwareAppender(TimedRollingFileAppender nonLoadTestTraceAppender,
29+
TimedRollingFileAppender loadTestTraceAppender) {
3930
this.nonLoadTestTraceAppender = nonLoadTestTraceAppender;
4031
this.loadTestTraceAppender = loadTestTraceAppender;
4132
}
4233

4334
public static LoadTestAwareAppender createLoadTestAwareTimedRollingFileAppender(String logName,
4435
boolean append) {
45-
TraceAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName, append);
46-
TraceAppender loadTestTraceAppender = new TimedRollingFileAppender("shadow"
47-
+ File.separator
48-
+ logName, append);
36+
TimedRollingFileAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
37+
append);
38+
TimedRollingFileAppender loadTestTraceAppender = new TimedRollingFileAppender(
39+
"shadow" + File.separator + logName, append);
4940
return new LoadTestAwareAppender(nonLoadTestTraceAppender, loadTestTraceAppender);
5041
}
5142

5243
public static LoadTestAwareAppender createLoadTestAwareTimedRollingFileAppender(String logName,
5344
String rollingPolicy,
5445
String logReserveConfig) {
55-
TraceAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
56-
rollingPolicy, logReserveConfig);
57-
TraceAppender loadTestTraceAppender = new TimedRollingFileAppender("shadow"
58-
+ File.separator
59-
+ logName,
46+
TimedRollingFileAppender nonLoadTestTraceAppender = new TimedRollingFileAppender(logName,
6047
rollingPolicy, logReserveConfig);
48+
TimedRollingFileAppender loadTestTraceAppender = new TimedRollingFileAppender(
49+
"shadow" + File.separator + logName, rollingPolicy, logReserveConfig);
6150
return new LoadTestAwareAppender(nonLoadTestTraceAppender, loadTestTraceAppender);
6251
}
6352

6453
public void append(String log, boolean loadTest) throws IOException {
6554
if (loadTest) {
66-
loadTestTraceAppender.append(log);
55+
this.loadTestTraceAppender.append(log);
6756
} else {
68-
nonLoadTestTraceAppender.append(log);
57+
this.nonLoadTestTraceAppender.append(log);
6958
}
7059
}
7160

72-
@Override
7361
public void flush() throws IOException {
74-
nonLoadTestTraceAppender.flush();
75-
loadTestTraceAppender.flush();
62+
this.nonLoadTestTraceAppender.flush();
63+
this.loadTestTraceAppender.flush();
7664
}
7765

78-
@Override
7966
public void append(String log) throws IOException {
8067
throw new UnsupportedOperationException();
8168
}
8269

83-
@Override
8470
public void cleanup() {
85-
nonLoadTestTraceAppender.cleanup();
86-
loadTestTraceAppender.cleanup();
71+
this.nonLoadTestTraceAppender.cleanup();
72+
this.loadTestTraceAppender.cleanup();
73+
}
74+
75+
public void reset(String datePattern) {
76+
nonLoadTestTraceAppender.resetTimedRollingFilleConfig(datePattern);
77+
loadTestTraceAppender.resetTimedRollingFilleConfig(datePattern);
8778
}
88-
}
79+
}

tracer-core/src/main/java/com/alipay/common/tracer/core/appender/file/TimedRollingFileAppender.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,17 @@ public TimedRollingFileAppender(String file, int bufferSize, boolean append,
131131
TracerDaemon.watch(this);
132132
}
133133

134+
public void resetTimedRollingFilleConfig(String datePattern) {
135+
this.datePattern = datePattern;
136+
sdf = new SimpleDateFormat(this.datePattern);
137+
rc.setType(computeCheckPeriod());
138+
scheduledFilename = fileName + sdf.format(new Date(logFile.lastModified()));
139+
TracerDaemon.watch(this);
140+
//重置 nextCheck
141+
now.setTime(System.currentTimeMillis());
142+
this.nextCheck = rc.getNextCheckMillis(now);
143+
}
144+
134145
/**
135146
* Determine if RollOver should be done now
136147
* @return true:Now RollOver

0 commit comments

Comments
 (0)