Skip to content

Commit c3c619f

Browse files
committed
#509 executor log normalization
1 parent 1ab058a commit c3c619f

File tree

4 files changed

+178
-1
lines changed

4 files changed

+178
-1
lines changed

saturn-core/src/main/java/com/vip/saturn/job/executor/ResetCountService.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
package com.vip.saturn.job.executor;
55

66
import com.vip.saturn.job.internal.statistics.ProcessCountResetTask;
7+
import com.vip.saturn.job.utils.LogEvents;
8+
import com.vip.saturn.job.utils.LogUtils;
79
import org.slf4j.Logger;
810
import org.slf4j.LoggerFactory;
911

@@ -41,7 +43,7 @@ public void startRestCountTimer() {
4143
date = startDT.getTime();
4244
}
4345
countResetTimer.schedule(countResetTask, date, 24 * 60 * 60 * 1000L); // 时间间隔(一天)
44-
log.info("msg=start the task of resetting statistics data");
46+
LogUtils.info(log, LogEvents.ExecutorEvent.INIT, "start the task of resetting statistics data");
4547
}
4648

4749
public void shutdownRestCountTimer() {

saturn-core/src/main/java/com/vip/saturn/job/utils/LogUtils.java

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ public class LogUtils {
66

77
private static final String FORMAT_FOR_LOG = "[{}] msg={}";
88

9+
private LogUtils() {
10+
}
11+
912
/**
1013
* @param logger slf4j logger
1114
* @param eventName 事件名
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
package com.vip.saturn.job.utils;
2+
3+
import ch.qos.logback.classic.spi.ILoggingEvent;
4+
import ch.qos.logback.core.AppenderBase;
5+
import com.google.common.collect.Lists;
6+
import org.junit.*;
7+
import org.slf4j.LoggerFactory;
8+
9+
import java.util.List;
10+
11+
import static org.junit.Assert.assertEquals;
12+
13+
public class LogUtilsTest {
14+
15+
private static TestLogAppender testLogAppender = new TestLogAppender();
16+
17+
private static ch.qos.logback.classic.Logger log;
18+
19+
@BeforeClass
20+
public static void before() {
21+
log = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(LogUtilsTest.class);
22+
if (testLogAppender != null) {
23+
testLogAppender.clear();
24+
}
25+
26+
log.addAppender(testLogAppender);
27+
}
28+
29+
@AfterClass
30+
public static void after() {
31+
if (testLogAppender != null) {
32+
log.detachAppender(testLogAppender);
33+
}
34+
}
35+
36+
@After
37+
public void afterTest() {
38+
testLogAppender.clear();
39+
}
40+
41+
@Test
42+
public void info() {
43+
LogUtils.info(log, "event", "this is info");
44+
assertEquals("[event] msg=this is info", testLogAppender.getLastMessage());
45+
46+
LogUtils.info(log, "event", "this is info {}", "info1");
47+
assertEquals("[event] msg=this is info info1", testLogAppender.getLastMessage());
48+
49+
LogUtils.info(log, "event", "this is info {} {}", "info1", "info2");
50+
assertEquals("[event] msg=this is info info1 info2", testLogAppender.getLastMessage());
51+
52+
LogUtils.info(log, "event", "this is info {} {}", "info1", "info2", new ClassNotFoundException("com.abc"));
53+
assertEquals("[event] msg=this is info info1 info2", testLogAppender.getLastMessage());
54+
assertEquals("com.abc", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
55+
56+
LogUtils.info(log, "event", "this is error {}", "error1", new Error("com.def"));
57+
assertEquals("[event] msg=this is error error1", testLogAppender.getLastMessage());
58+
assertEquals("com.def", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
59+
}
60+
61+
@Test
62+
public void debug() {
63+
LogUtils.debug(log, "event", "this is debug");
64+
assertEquals("[event] msg=this is debug", testLogAppender.getLastMessage());
65+
66+
LogUtils.debug(log, "event", "this is debug {}", "info1");
67+
assertEquals("[event] msg=this is debug info1", testLogAppender.getLastMessage());
68+
69+
LogUtils.debug(log, "event", "this is debug {} {}", "info1", "info2");
70+
assertEquals("[event] msg=this is debug info1 info2", testLogAppender.getLastMessage());
71+
72+
LogUtils.debug(log, "event", "this is debug {} {}", "info1", "info2", new ClassNotFoundException("com.abc"));
73+
assertEquals("[event] msg=this is debug info1 info2", testLogAppender.getLastMessage());
74+
assertEquals("com.abc", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
75+
76+
LogUtils.debug(log, "event", "this is error {}", "error1", new Error("com.def"));
77+
assertEquals("[event] msg=this is error error1", testLogAppender.getLastMessage());
78+
assertEquals("com.def", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
79+
}
80+
81+
@Test
82+
public void error() {
83+
LogUtils.error(log, "event", "this is error");
84+
assertEquals("[event] msg=this is error", testLogAppender.getLastMessage());
85+
86+
LogUtils.error(log, "event", "this is error {}", "info1");
87+
assertEquals("[event] msg=this is error info1", testLogAppender.getLastMessage());
88+
89+
LogUtils.error(log, "event", "this is error {} {}", "info1", "info2");
90+
assertEquals("[event] msg=this is error info1 info2", testLogAppender.getLastMessage());
91+
92+
LogUtils.error(log, "event", "this is error {} {}", "info1", "info2", new ClassNotFoundException("com.abc"));
93+
assertEquals("[event] msg=this is error info1 info2", testLogAppender.getLastMessage());
94+
assertEquals("com.abc", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
95+
96+
LogUtils.error(log, "event", "this is error {}", "error1", new Error("com.def"));
97+
assertEquals("[event] msg=this is error error1", testLogAppender.getLastMessage());
98+
assertEquals("com.def", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
99+
}
100+
101+
@Test
102+
public void warn() {
103+
LogUtils.warn(log, "event", "this is warn");
104+
assertEquals("[event] msg=this is warn", testLogAppender.getLastMessage());
105+
106+
LogUtils.warn(log, "event", "this is warn {}", "info1");
107+
assertEquals("[event] msg=this is warn info1", testLogAppender.getLastMessage());
108+
109+
LogUtils.warn(log, "event", "this is warn {} {}", "info1", "info2");
110+
assertEquals("[event] msg=this is warn info1 info2", testLogAppender.getLastMessage());
111+
112+
LogUtils.warn(log, "event", "this is warn {} {}", "info1", "info2", new ClassNotFoundException("com.abc"));
113+
assertEquals("[event] msg=this is warn info1 info2", testLogAppender.getLastMessage());
114+
assertEquals("com.abc", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
115+
116+
LogUtils.warn(log, "event", "this is warn {}", "error1", new Error("com.def"));
117+
assertEquals("[event] msg=this is warn error1", testLogAppender.getLastMessage());
118+
assertEquals("com.def", testLogAppender.getLastEvent().getThrowableProxy().getMessage());
119+
}
120+
121+
122+
public static final class TestLogAppender extends AppenderBase<ILoggingEvent> {
123+
private List<ILoggingEvent> events = Lists.newArrayList();
124+
private List<String> messages = Lists.newArrayList();
125+
126+
@Override
127+
public synchronized void doAppend(ILoggingEvent eventObject) {
128+
super.doAppend(eventObject);
129+
events.add(eventObject);
130+
messages.add(eventObject.getFormattedMessage());
131+
}
132+
133+
@Override
134+
protected void append(ILoggingEvent eventObject) {
135+
events.add(eventObject);
136+
messages.add(eventObject.getFormattedMessage());
137+
}
138+
139+
public void clear() {
140+
events.clear();
141+
messages.clear();
142+
}
143+
144+
public ILoggingEvent getLastEvent() {
145+
if (events.size() == 0) {
146+
return null;
147+
}
148+
149+
return events.get(events.size() - 1);
150+
}
151+
152+
public List<ILoggingEvent> getEvents() {
153+
return events;
154+
}
155+
156+
public List<String> getMessages() {
157+
return messages;
158+
}
159+
160+
public String getLastMessage() {
161+
if (messages.size() == 0) {
162+
return null;
163+
}
164+
165+
return messages.get(messages.size() - 1);
166+
}
167+
}
168+
}

saturn-core/src/test/resources/logback-test.xml

+4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
<pattern>${log.pattern}</pattern>
1313
</encoder>
1414
</appender>
15+
16+
<logger name="com.vip.saturn.job.utils" additivity="false">
17+
<level value="ALL"/>
18+
</logger>
1519

1620
<root>
1721
<level value="WARN" />

0 commit comments

Comments
 (0)