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=========================================================
 
  24 package org.openecomp.appc.test;
 
  26 import java.text.MessageFormat;
 
  27 import java.util.ArrayList;
 
  28 import java.util.List;
 
  30 import org.slf4j.Marker;
 
  32 import ch.qos.logback.classic.Level;
 
  35  * This class is used as an intercept logger that can be used in testing to intercept and record all messages that are
 
  36  * logged, thus allowing a junit test case to examine the log output and make assertions.
 
  38 public class InterceptLogger implements org.slf4j.Logger {
 
  41      * This inner class represents an intercepted log event.
 
  43     public class LogRecord {
 
  45         private String message;
 
  46         private long timestamp;
 
  49         public LogRecord(Level level, String message) {
 
  51             setTimestamp(System.currentTimeMillis());
 
  55         public LogRecord(Level level, String message, Throwable t) {
 
  61          * @return the value of level
 
  63         public Level getLevel() {
 
  68          * @return the value of message
 
  70         public String getMessage() {
 
  75          * @return the value of timestamp
 
  77         public long getTimestamp() {
 
  85         public void setLevel(Level level) {
 
  91          *            the value for message
 
  93         public void setMessage(String message) {
 
  94             this.message = message;
 
  99          *            the value for timestamp
 
 101         public void setTimestamp(long timestamp) {
 
 102             this.timestamp = timestamp;
 
 106          * @return the value of t
 
 108         public Throwable getThrowable() {
 
 116         public void setThrowable(Throwable t) {
 
 123      * The list of all intercepted log events
 
 125     private List<LogRecord> events;
 
 128      * Create the intercept logger
 
 130     public InterceptLogger() {
 
 131         events = new ArrayList<LogRecord>(1000);
 
 135      * @return Returns all intercepted log events
 
 137     public List<LogRecord> getLogRecords() {
 
 142      * Clears all log events
 
 144     public void clear() {
 
 149     public void debug(Marker marker, String msg) {
 
 154     public void debug(Marker marker, String format, Object arg) {
 
 155         debug(MessageFormat.format(format, arg));
 
 159     public void debug(Marker marker, String format, Object... arguments) {
 
 160         debug(MessageFormat.format(format, arguments));
 
 164     public void debug(Marker marker, String format, Object arg1, Object arg2) {
 
 165         debug(MessageFormat.format(format, arg1, arg2));
 
 169     public void debug(Marker marker, String msg, Throwable t) {
 
 174     public void debug(String msg) {
 
 175         events.add(new LogRecord(Level.DEBUG, msg));
 
 179     public void debug(String format, Object arg) {
 
 180         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg)));
 
 184     public void debug(String format, Object... arguments) {
 
 185         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arguments)));
 
 189     public void debug(String format, Object arg1, Object arg2) {
 
 190         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg1, arg2)));
 
 194     public void debug(String msg, Throwable t) {
 
 195         events.add(new LogRecord(Level.DEBUG, msg, t));
 
 199     public void error(Marker marker, String msg) {
 
 204     public void error(Marker marker, String format, Object arg) {
 
 209     public void error(Marker marker, String format, Object... arguments) {
 
 210         error(format, arguments);
 
 214     public void error(Marker marker, String format, Object arg1, Object arg2) {
 
 215         error(format, arg1, arg2);
 
 219     public void error(Marker marker, String msg, Throwable t) {
 
 220         events.add(new LogRecord(Level.ERROR, msg, t));
 
 224     public void error(String msg) {
 
 225         events.add(new LogRecord(Level.ERROR, msg));
 
 229     public void error(String format, Object arg) {
 
 230         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg)));
 
 234     public void error(String format, Object... arguments) {
 
 235         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arguments)));
 
 239     public void error(String format, Object arg1, Object arg2) {
 
 240         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg1, arg2)));
 
 244     public void error(String msg, Throwable t) {
 
 245         events.add(new LogRecord(Level.ERROR, msg, t));
 
 249     public String getName() {
 
 254     public void info(Marker marker, String msg) {
 
 259     public void info(Marker marker, String format, Object arg) {
 
 264     public void info(Marker marker, String format, Object... arguments) {
 
 265         info(format, arguments);
 
 269     public void info(Marker marker, String format, Object arg1, Object arg2) {
 
 270         info(format, arg1, arg2);
 
 274     public void info(Marker marker, String msg, Throwable t) {
 
 275         events.add(new LogRecord(Level.INFO, msg, t));
 
 279     public void info(String msg) {
 
 280         events.add(new LogRecord(Level.INFO, msg));
 
 284     public void info(String format, Object arg) {
 
 285         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg)));
 
 289     public void info(String format, Object... arguments) {
 
 290         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arguments)));
 
 294     public void info(String format, Object arg1, Object arg2) {
 
 295         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg1, arg2)));
 
 299     public void info(String msg, Throwable t) {
 
 300         events.add(new LogRecord(Level.INFO, msg, t));
 
 304     public boolean isDebugEnabled() {
 
 309     public boolean isDebugEnabled(Marker marker) {
 
 314     public boolean isErrorEnabled() {
 
 319     public boolean isErrorEnabled(Marker marker) {
 
 324     public boolean isInfoEnabled() {
 
 329     public boolean isInfoEnabled(Marker marker) {
 
 334     public boolean isTraceEnabled() {
 
 339     public boolean isTraceEnabled(Marker marker) {
 
 344     public boolean isWarnEnabled() {
 
 349     public boolean isWarnEnabled(Marker marker) {
 
 354     public void trace(Marker marker, String msg) {
 
 359     public void trace(Marker marker, String format, Object arg) {
 
 364     public void trace(Marker marker, String format, Object... argArray) {
 
 365         trace(format, argArray);
 
 369     public void trace(Marker marker, String format, Object arg1, Object arg2) {
 
 370         trace(format, arg1, arg2);
 
 374     public void trace(Marker marker, String msg, Throwable t) {
 
 379     public void trace(String msg) {
 
 380         events.add(new LogRecord(Level.TRACE, msg));
 
 384     public void trace(String format, Object arg) {
 
 385         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg)));
 
 389     public void trace(String format, Object... arguments) {
 
 390         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arguments)));
 
 394     public void trace(String format, Object arg1, Object arg2) {
 
 395         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg1, arg2)));
 
 399     public void trace(String msg, Throwable t) {
 
 400         events.add(new LogRecord(Level.TRACE, msg, t));
 
 404     public void warn(Marker marker, String msg) {
 
 409     public void warn(Marker marker, String format, Object arg) {
 
 414     public void warn(Marker marker, String format, Object... arguments) {
 
 415         warn(format, arguments);
 
 419     public void warn(Marker marker, String format, Object arg1, Object arg2) {
 
 420         warn(format, arg1, arg2);
 
 424     public void warn(Marker marker, String msg, Throwable t) {
 
 425         events.add(new LogRecord(Level.WARN, msg, t));
 
 429     public void warn(String msg) {
 
 430         events.add(new LogRecord(Level.WARN, msg));
 
 434     public void warn(String format, Object arg) {
 
 435         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg)));
 
 439     public void warn(String format, Object... arguments) {
 
 440         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arguments)));
 
 444     public void warn(String format, Object arg1, Object arg2) {
 
 445         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg1, arg2)));
 
 449     public void warn(String msg, Throwable t) {
 
 450         events.add(new LogRecord(Level.WARN, msg, t));