2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
20 * ============LICENSE_END=========================================================
24 package org.onap.ccsdk.test;
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;
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.
36 public class InterceptLogger implements org.slf4j.Logger {
39 * The list of all intercepted log events
41 private final List<LogRecord> events;
44 * Create the intercept logger
46 public InterceptLogger() {
47 events = new ArrayList<>(1000);
51 * @return Returns all intercepted log events
53 public List<LogRecord> getLogRecords() {
58 * Clears all log events
65 public void debug(Marker marker, String msg) {
70 public void debug(Marker marker, String format, Object arg) {
71 debug(MessageFormat.format(format, arg));
75 public void debug(Marker marker, String format, Object... arguments) {
76 debug(MessageFormat.format(format, arguments));
80 public void debug(Marker marker, String format, Object arg1, Object arg2) {
81 debug(MessageFormat.format(format, arg1, arg2));
85 public void debug(Marker marker, String msg, Throwable t) {
90 public void debug(String msg) {
91 events.add(new LogRecord(Level.DEBUG, msg));
95 public void debug(String format, Object arg) {
96 events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg)));
100 public void debug(String format, Object... arguments) {
101 events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arguments)));
105 public void debug(String format, Object arg1, Object arg2) {
106 events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg1, arg2)));
110 public void debug(String msg, Throwable t) {
111 events.add(new LogRecord(Level.DEBUG, msg, t));
115 public void error(Marker marker, String msg) {
120 public void error(Marker marker, String format, Object arg) {
125 public void error(Marker marker, String format, Object... arguments) {
126 error(format, arguments);
130 public void error(Marker marker, String format, Object arg1, Object arg2) {
131 error(format, arg1, arg2);
135 public void error(Marker marker, String msg, Throwable t) {
136 events.add(new LogRecord(Level.ERROR, msg, t));
140 public void error(String msg) {
141 events.add(new LogRecord(Level.ERROR, msg));
145 public void error(String format, Object arg) {
146 events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg)));
150 public void error(String format, Object... arguments) {
151 events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arguments)));
155 public void error(String format, Object arg1, Object arg2) {
156 events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg1, arg2)));
160 public void error(String msg, Throwable t) {
161 events.add(new LogRecord(Level.ERROR, msg, t));
165 public String getName() {
170 public void info(Marker marker, String msg) {
175 public void info(Marker marker, String format, Object arg) {
180 public void info(Marker marker, String format, Object... arguments) {
181 info(format, arguments);
185 public void info(Marker marker, String format, Object arg1, Object arg2) {
186 info(format, arg1, arg2);
190 public void info(Marker marker, String msg, Throwable t) {
191 events.add(new LogRecord(Level.INFO, msg, t));
195 public void info(String msg) {
196 events.add(new LogRecord(Level.INFO, msg));
200 public void info(String format, Object arg) {
201 events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg)));
205 public void info(String format, Object... arguments) {
206 events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arguments)));
210 public void info(String format, Object arg1, Object arg2) {
211 events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg1, arg2)));
215 public void info(String msg, Throwable t) {
216 events.add(new LogRecord(Level.INFO, msg, t));
220 public boolean isDebugEnabled() {
225 public boolean isDebugEnabled(Marker marker) {
230 public boolean isErrorEnabled() {
235 public boolean isErrorEnabled(Marker marker) {
240 public boolean isInfoEnabled() {
245 public boolean isInfoEnabled(Marker marker) {
250 public boolean isTraceEnabled() {
255 public boolean isTraceEnabled(Marker marker) {
260 public boolean isWarnEnabled() {
265 public boolean isWarnEnabled(Marker marker) {
270 public void trace(Marker marker, String msg) {
275 public void trace(Marker marker, String format, Object arg) {
280 public void trace(Marker marker, String format, Object... argArray) {
281 trace(format, argArray);
285 public void trace(Marker marker, String format, Object arg1, Object arg2) {
286 trace(format, arg1, arg2);
290 public void trace(Marker marker, String msg, Throwable t) {
295 public void trace(String msg) {
296 events.add(new LogRecord(Level.TRACE, msg));
300 public void trace(String format, Object arg) {
301 events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg)));
305 public void trace(String format, Object... arguments) {
306 events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arguments)));
310 public void trace(String format, Object arg1, Object arg2) {
311 events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg1, arg2)));
315 public void trace(String msg, Throwable t) {
316 events.add(new LogRecord(Level.TRACE, msg, t));
320 public void warn(Marker marker, String msg) {
325 public void warn(Marker marker, String format, Object arg) {
330 public void warn(Marker marker, String format, Object... arguments) {
331 warn(format, arguments);
335 public void warn(Marker marker, String format, Object arg1, Object arg2) {
336 warn(format, arg1, arg2);
340 public void warn(Marker marker, String msg, Throwable t) {
341 events.add(new LogRecord(Level.WARN, msg, t));
345 public void warn(String msg) {
346 events.add(new LogRecord(Level.WARN, msg));
350 public void warn(String format, Object arg) {
351 events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg)));
355 public void warn(String format, Object... arguments) {
356 events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arguments)));
360 public void warn(String format, Object arg1, Object arg2) {
361 events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg1, arg2)));
365 public void warn(String msg, Throwable t) {
366 events.add(new LogRecord(Level.WARN, msg, t));
370 * This inner class represents an intercepted log event
372 public class LogRecord {
374 private String message;
375 private long timestamp;
378 public LogRecord(Level level, String message) {
380 setTimestamp(System.currentTimeMillis());
384 public LogRecord(Level level, String message, Throwable t) {
385 this(level, message);
390 * @return the value of level
392 public Level getLevel() {
397 * @param level the value for level
399 public void setLevel(Level level) {
404 * @return the value of message
406 public String getMessage() {
411 * @param message the value for message
413 public void setMessage(String message) {
414 this.message = message;
418 * @return the value of timestamp
420 public long getTimestamp() {
425 * @param timestamp the value for timestamp
427 public void setTimestamp(long timestamp) {
428 this.timestamp = timestamp;
432 * @return the value of t
434 public Throwable getThrowable() {
439 * @param t the value for t
441 public void setThrowable(Throwable t) {