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