2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights
 
   7  * ================================================================================
 
   8  * Licensed under the Apache License, Version 2.0 (the "License");
 
   9  * you may not use this file except in compliance with the License.
 
  10  * You may obtain a copy of the License at
 
  12  *      http://www.apache.org/licenses/LICENSE-2.0
 
  14  * Unless required by applicable law or agreed to in writing, software
 
  15  * distributed under the License is distributed on an "AS IS" BASIS,
 
  16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  17  * See the License for the specific language governing permissions and
 
  18  * limitations under the License.
 
  19  * ============LICENSE_END=========================================================
 
  23 package org.openecomp.appc.test;
 
  25 import java.text.MessageFormat;
 
  26 import java.util.ArrayList;
 
  27 import java.util.List;
 
  29 import org.slf4j.Marker;
 
  31 import ch.qos.logback.classic.Level;
 
  34  * This class is used as an intercept logger that can be used in testing to intercept and record all messages that are
 
  35  * logged, thus allowing a junit test case to examine the log output and make assertions.
 
  37 public class InterceptLogger implements org.slf4j.Logger {
 
  40      * This inner class represents an intercepted log event
 
  42     public class LogRecord {
 
  44         private String message;
 
  45         private long timestamp;
 
  48         public LogRecord(Level level, String message) {
 
  50             setTimestamp(System.currentTimeMillis());
 
  54         public LogRecord(Level level, String message, Throwable t) {
 
  60          * @return the value of level
 
  62         public Level getLevel() {
 
  67          * @return the value of message
 
  69         public String getMessage() {
 
  74          * @return the value of timestamp
 
  76         public long getTimestamp() {
 
  84         public void setLevel(Level level) {
 
  90          *            the value for message
 
  92         public void setMessage(String message) {
 
  93             this.message = message;
 
  98          *            the value for timestamp
 
 100         public void setTimestamp(long timestamp) {
 
 101             this.timestamp = timestamp;
 
 105          * @return the value of t
 
 107         public Throwable getThrowable() {
 
 115         public void setThrowable(Throwable t) {
 
 122      * The list of all intercepted log events
 
 124     private List<LogRecord> events;
 
 127      * Create the intercept logger
 
 129     public InterceptLogger() {
 
 130         events = new ArrayList<LogRecord>(1000);
 
 134      * @return Returns all intercepted log events
 
 136     public List<LogRecord> getLogRecords() {
 
 141      * Clears all log events
 
 143     public void clear() {
 
 148     public void debug(Marker marker, String msg) {
 
 153     public void debug(Marker marker, String format, Object arg) {
 
 154         debug(MessageFormat.format(format, arg));
 
 158     public void debug(Marker marker, String format, Object... arguments) {
 
 159         debug(MessageFormat.format(format, arguments));
 
 163     public void debug(Marker marker, String format, Object arg1, Object arg2) {
 
 164         debug(MessageFormat.format(format, arg1, arg2));
 
 168     public void debug(Marker marker, String msg, Throwable t) {
 
 173     public void debug(String msg) {
 
 174         events.add(new LogRecord(Level.DEBUG, msg));
 
 178     public void debug(String format, Object arg) {
 
 179         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg)));
 
 183     public void debug(String format, Object... arguments) {
 
 184         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arguments)));
 
 188     public void debug(String format, Object arg1, Object arg2) {
 
 189         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg1, arg2)));
 
 193     public void debug(String msg, Throwable t) {
 
 194         events.add(new LogRecord(Level.DEBUG, msg, t));
 
 198     public void error(Marker marker, String msg) {
 
 203     public void error(Marker marker, String format, Object arg) {
 
 208     public void error(Marker marker, String format, Object... arguments) {
 
 209         error(format, arguments);
 
 213     public void error(Marker marker, String format, Object arg1, Object arg2) {
 
 214         error(format, arg1, arg2);
 
 218     public void error(Marker marker, String msg, Throwable t) {
 
 219         events.add(new LogRecord(Level.ERROR, msg, t));
 
 223     public void error(String msg) {
 
 224         events.add(new LogRecord(Level.ERROR, msg));
 
 228     public void error(String format, Object arg) {
 
 229         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg)));
 
 233     public void error(String format, Object... arguments) {
 
 234         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arguments)));
 
 238     public void error(String format, Object arg1, Object arg2) {
 
 239         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg1, arg2)));
 
 243     public void error(String msg, Throwable t) {
 
 244         events.add(new LogRecord(Level.ERROR, msg, t));
 
 248     public String getName() {
 
 253     public void info(Marker marker, String msg) {
 
 258     public void info(Marker marker, String format, Object arg) {
 
 263     public void info(Marker marker, String format, Object... arguments) {
 
 264         info(format, arguments);
 
 268     public void info(Marker marker, String format, Object arg1, Object arg2) {
 
 269         info(format, arg1, arg2);
 
 273     public void info(Marker marker, String msg, Throwable t) {
 
 274         events.add(new LogRecord(Level.INFO, msg, t));
 
 278     public void info(String msg) {
 
 279         events.add(new LogRecord(Level.INFO, msg));
 
 283     public void info(String format, Object arg) {
 
 284         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg)));
 
 288     public void info(String format, Object... arguments) {
 
 289         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arguments)));
 
 293     public void info(String format, Object arg1, Object arg2) {
 
 294         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg1, arg2)));
 
 298     public void info(String msg, Throwable t) {
 
 299         events.add(new LogRecord(Level.INFO, msg, t));
 
 303     public boolean isDebugEnabled() {
 
 308     public boolean isDebugEnabled(Marker marker) {
 
 313     public boolean isErrorEnabled() {
 
 318     public boolean isErrorEnabled(Marker marker) {
 
 323     public boolean isInfoEnabled() {
 
 328     public boolean isInfoEnabled(Marker marker) {
 
 333     public boolean isTraceEnabled() {
 
 338     public boolean isTraceEnabled(Marker marker) {
 
 343     public boolean isWarnEnabled() {
 
 348     public boolean isWarnEnabled(Marker marker) {
 
 353     public void trace(Marker marker, String msg) {
 
 358     public void trace(Marker marker, String format, Object arg) {
 
 363     public void trace(Marker marker, String format, Object... argArray) {
 
 364         trace(format, argArray);
 
 368     public void trace(Marker marker, String format, Object arg1, Object arg2) {
 
 369         trace(format, arg1, arg2);
 
 373     public void trace(Marker marker, String msg, Throwable t) {
 
 378     public void trace(String msg) {
 
 379         events.add(new LogRecord(Level.TRACE, msg));
 
 383     public void trace(String format, Object arg) {
 
 384         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg)));
 
 388     public void trace(String format, Object... arguments) {
 
 389         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arguments)));
 
 393     public void trace(String format, Object arg1, Object arg2) {
 
 394         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg1, arg2)));
 
 398     public void trace(String msg, Throwable t) {
 
 399         events.add(new LogRecord(Level.TRACE, msg, t));
 
 403     public void warn(Marker marker, String msg) {
 
 408     public void warn(Marker marker, String format, Object arg) {
 
 413     public void warn(Marker marker, String format, Object... arguments) {
 
 414         warn(format, arguments);
 
 418     public void warn(Marker marker, String format, Object arg1, Object arg2) {
 
 419         warn(format, arg1, arg2);
 
 423     public void warn(Marker marker, String msg, Throwable t) {
 
 424         events.add(new LogRecord(Level.WARN, msg, t));
 
 428     public void warn(String msg) {
 
 429         events.add(new LogRecord(Level.WARN, msg));
 
 433     public void warn(String format, Object arg) {
 
 434         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg)));
 
 438     public void warn(String format, Object... arguments) {
 
 439         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arguments)));
 
 443     public void warn(String format, Object arg1, Object arg2) {
 
 444         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg1, arg2)));
 
 448     public void warn(String msg, Throwable t) {
 
 449         events.add(new LogRecord(Level.WARN, msg, t));