You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by st...@apache.org on 2015/08/25 15:32:17 UTC
svn commit: r1697671 -
/jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/junit/LogLevelModifier.java
Author: stefanegli
Date: Tue Aug 25 13:32:17 2015
New Revision: 1697671
URL: http://svn.apache.org/r1697671
Log:
OAK-3291 : add newConsoleAppender method - this allows to temporarily add a console for individual tests - this can be used together with LogDumper to have log output written to eg the console in case the test fails
Modified:
jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/junit/LogLevelModifier.java
Modified: jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/junit/LogLevelModifier.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/junit/LogLevelModifier.java?rev=1697671&r1=1697670&r2=1697671&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/junit/LogLevelModifier.java (original)
+++ jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/junit/LogLevelModifier.java Tue Aug 25 13:32:17 2015
@@ -35,6 +35,7 @@ import ch.qos.logback.classic.LoggerCont
import ch.qos.logback.classic.filter.ThresholdFilter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.Appender;
+import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.filter.Filter;
/**
@@ -136,8 +137,19 @@ public class LogLevelModifier extends Te
}
private final List<AppenderFilter> appenderFilters = new LinkedList<AppenderFilter>();
+ @SuppressWarnings("rawtypes")
+ private final List<Appender> newAppenders = new LinkedList<Appender>();
private final List<LoggerLevel> loggerLevels = new LinkedList<LoggerLevel>();
+ public LogLevelModifier newConsoleAppender(String name) {
+ ConsoleAppender<ILoggingEvent> c = new ConsoleAppender<ILoggingEvent>();
+ c.setName(name);
+ c.setContext(getContext());
+ rootLogger().addAppender(c);
+ newAppenders.add(c);
+ return this;
+ }
+
/**
* Adds a ThresholdFilter with the given level to an existing appender during the test.
* <p>
@@ -169,6 +181,7 @@ public class LogLevelModifier extends Te
}
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected void finished(Description description) {
for (Iterator<AppenderFilter> it = appenderFilters.iterator(); it.hasNext();) {
@@ -179,6 +192,10 @@ public class LogLevelModifier extends Te
LoggerLevel loggerLevel = (LoggerLevel) it.next();
loggerLevel.finished();
}
+ for (Iterator<Appender> it = newAppenders.iterator(); it.hasNext();) {
+ Appender appender = it.next();
+ rootLogger().detachAppender(appender);
+ }
}
@Override