3ed32376a4d53e2d16213a3c952a3274459866eb
[ccsdk/sli.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : SLI
4  * ================================================================================
5  * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
20  * ============LICENSE_END=========================================================
21  */
22
23
24 package org.onap.ccsdk.test;
25
26 import ch.qos.logback.classic.Level;
27 import java.text.MessageFormat;
28 import java.util.ArrayList;
29 import java.util.List;
30 import org.slf4j.Marker;
31
32 /**
33  * This class is used as an intercept logger that can be used in testing to intercept and record all messages that are
34  * logged, thus allowing a junit test case to examine the log output and make assertions.
35  */
36 public class InterceptLogger implements org.slf4j.Logger {
37
38     /**
39      * The list of all intercepted log events
40      */
41     private final List<LogRecord> events;
42
43     /**
44      * Create the intercept logger
45      */
46     public InterceptLogger() {
47         events = new ArrayList<>(1000);
48     }
49
50     /**
51      * @return Returns all intercepted log events
52      */
53     public List<LogRecord> getLogRecords() {
54         return events;
55     }
56
57     /**
58      * Clears all log events
59      */
60     public void clear() {
61         events.clear();
62     }
63
64     @Override
65     public void debug(Marker marker, String msg) {
66         debug(msg);
67     }
68
69     @Override
70     public void debug(Marker marker, String format, Object arg) {
71         debug(MessageFormat.format(format, arg));
72     }
73
74     @Override
75     public void debug(Marker marker, String format, Object... arguments) {
76         debug(MessageFormat.format(format, arguments));
77     }
78
79     @Override
80     public void debug(Marker marker, String format, Object arg1, Object arg2) {
81         debug(MessageFormat.format(format, arg1, arg2));
82     }
83
84     @Override
85     public void debug(Marker marker, String msg, Throwable t) {
86         debug(msg, t);
87     }
88
89     @Override
90     public void debug(String msg) {
91         events.add(new LogRecord(Level.DEBUG, msg));
92     }
93
94     @Override
95     public void debug(String format, Object arg) {
96         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg)));
97     }
98
99     @Override
100     public void debug(String format, Object... arguments) {
101         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arguments)));
102     }
103
104     @Override
105     public void debug(String format, Object arg1, Object arg2) {
106         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg1, arg2)));
107     }
108
109     @Override
110     public void debug(String msg, Throwable t) {
111         events.add(new LogRecord(Level.DEBUG, msg, t));
112     }
113
114     @Override
115     public void error(Marker marker, String msg) {
116         error(msg);
117     }
118
119     @Override
120     public void error(Marker marker, String format, Object arg) {
121         error(format, arg);
122     }
123
124     @Override
125     public void error(Marker marker, String format, Object... arguments) {
126         error(format, arguments);
127     }
128
129     @Override
130     public void error(Marker marker, String format, Object arg1, Object arg2) {
131         error(format, arg1, arg2);
132     }
133
134     @Override
135     public void error(Marker marker, String msg, Throwable t) {
136         events.add(new LogRecord(Level.ERROR, msg, t));
137     }
138
139     @Override
140     public void error(String msg) {
141         events.add(new LogRecord(Level.ERROR, msg));
142     }
143
144     @Override
145     public void error(String format, Object arg) {
146         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg)));
147     }
148
149     @Override
150     public void error(String format, Object... arguments) {
151         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arguments)));
152     }
153
154     @Override
155     public void error(String format, Object arg1, Object arg2) {
156         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg1, arg2)));
157     }
158
159     @Override
160     public void error(String msg, Throwable t) {
161         events.add(new LogRecord(Level.ERROR, msg, t));
162     }
163
164     @Override
165     public String getName() {
166         return null;
167     }
168
169     @Override
170     public void info(Marker marker, String msg) {
171         info(msg);
172     }
173
174     @Override
175     public void info(Marker marker, String format, Object arg) {
176         info(format, arg);
177     }
178
179     @Override
180     public void info(Marker marker, String format, Object... arguments) {
181         info(format, arguments);
182     }
183
184     @Override
185     public void info(Marker marker, String format, Object arg1, Object arg2) {
186         info(format, arg1, arg2);
187     }
188
189     @Override
190     public void info(Marker marker, String msg, Throwable t) {
191         events.add(new LogRecord(Level.INFO, msg, t));
192     }
193
194     @Override
195     public void info(String msg) {
196         events.add(new LogRecord(Level.INFO, msg));
197     }
198
199     @Override
200     public void info(String format, Object arg) {
201         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg)));
202     }
203
204     @Override
205     public void info(String format, Object... arguments) {
206         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arguments)));
207     }
208
209     @Override
210     public void info(String format, Object arg1, Object arg2) {
211         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg1, arg2)));
212     }
213
214     @Override
215     public void info(String msg, Throwable t) {
216         events.add(new LogRecord(Level.INFO, msg, t));
217     }
218
219     @Override
220     public boolean isDebugEnabled() {
221         return true;
222     }
223
224     @Override
225     public boolean isDebugEnabled(Marker marker) {
226         return true;
227     }
228
229     @Override
230     public boolean isErrorEnabled() {
231         return true;
232     }
233
234     @Override
235     public boolean isErrorEnabled(Marker marker) {
236         return true;
237     }
238
239     @Override
240     public boolean isInfoEnabled() {
241         return true;
242     }
243
244     @Override
245     public boolean isInfoEnabled(Marker marker) {
246         return true;
247     }
248
249     @Override
250     public boolean isTraceEnabled() {
251         return true;
252     }
253
254     @Override
255     public boolean isTraceEnabled(Marker marker) {
256         return true;
257     }
258
259     @Override
260     public boolean isWarnEnabled() {
261         return true;
262     }
263
264     @Override
265     public boolean isWarnEnabled(Marker marker) {
266         return true;
267     }
268
269     @Override
270     public void trace(Marker marker, String msg) {
271         trace(msg);
272     }
273
274     @Override
275     public void trace(Marker marker, String format, Object arg) {
276         trace(format, arg);
277     }
278
279     @Override
280     public void trace(Marker marker, String format, Object... argArray) {
281         trace(format, argArray);
282     }
283
284     @Override
285     public void trace(Marker marker, String format, Object arg1, Object arg2) {
286         trace(format, arg1, arg2);
287     }
288
289     @Override
290     public void trace(Marker marker, String msg, Throwable t) {
291         trace(msg, t);
292     }
293
294     @Override
295     public void trace(String msg) {
296         events.add(new LogRecord(Level.TRACE, msg));
297     }
298
299     @Override
300     public void trace(String format, Object arg) {
301         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg)));
302     }
303
304     @Override
305     public void trace(String format, Object... arguments) {
306         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arguments)));
307     }
308
309     @Override
310     public void trace(String format, Object arg1, Object arg2) {
311         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg1, arg2)));
312     }
313
314     @Override
315     public void trace(String msg, Throwable t) {
316         events.add(new LogRecord(Level.TRACE, msg, t));
317     }
318
319     @Override
320     public void warn(Marker marker, String msg) {
321         warn(msg);
322     }
323
324     @Override
325     public void warn(Marker marker, String format, Object arg) {
326         warn(format, arg);
327     }
328
329     @Override
330     public void warn(Marker marker, String format, Object... arguments) {
331         warn(format, arguments);
332     }
333
334     @Override
335     public void warn(Marker marker, String format, Object arg1, Object arg2) {
336         warn(format, arg1, arg2);
337     }
338
339     @Override
340     public void warn(Marker marker, String msg, Throwable t) {
341         events.add(new LogRecord(Level.WARN, msg, t));
342     }
343
344     @Override
345     public void warn(String msg) {
346         events.add(new LogRecord(Level.WARN, msg));
347     }
348
349     @Override
350     public void warn(String format, Object arg) {
351         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg)));
352     }
353
354     @Override
355     public void warn(String format, Object... arguments) {
356         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arguments)));
357     }
358
359     @Override
360     public void warn(String format, Object arg1, Object arg2) {
361         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg1, arg2)));
362     }
363
364     @Override
365     public void warn(String msg, Throwable t) {
366         events.add(new LogRecord(Level.WARN, msg, t));
367     }
368
369     /**
370      * This inner class represents an intercepted log event
371      */
372     public class LogRecord {
373         private Level level;
374         private String message;
375         private long timestamp;
376         private Throwable t;
377
378         public LogRecord(Level level, String message) {
379             setLevel(level);
380             setTimestamp(System.currentTimeMillis());
381             setMessage(message);
382         }
383
384         public LogRecord(Level level, String message, Throwable t) {
385             this(level, message);
386             setThrowable(t);
387         }
388
389         /**
390          * @return the value of level
391          */
392         public Level getLevel() {
393             return level;
394         }
395
396         /**
397          * @param level the value for level
398          */
399         public void setLevel(Level level) {
400             this.level = level;
401         }
402
403         /**
404          * @return the value of message
405          */
406         public String getMessage() {
407             return message;
408         }
409
410         /**
411          * @param message the value for message
412          */
413         public void setMessage(String message) {
414             this.message = message;
415         }
416
417         /**
418          * @return the value of timestamp
419          */
420         public long getTimestamp() {
421             return timestamp;
422         }
423
424         /**
425          * @param timestamp the value for timestamp
426          */
427         public void setTimestamp(long timestamp) {
428             this.timestamp = timestamp;
429         }
430
431         /**
432          * @return the value of t
433          */
434         public Throwable getThrowable() {
435             return t;
436         }
437
438         /**
439          * @param t the value for t
440          */
441         public void setThrowable(Throwable t) {
442             this.t = t;
443         }
444
445     }
446
447 }