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
+ }
0 commit comments