Logger rootLogger = org.apache.log4j.LogManager.getRootLogger();
org.apache.log4j.Level oldLevel = rootLogger.getLevel();
rootLogger.setLevel(org.apache.log4j.Level.ALL);
Appender appender = (Appender) rootLogger.getAllAppenders().nextElement();
// Capture the logging output without actually logging it
appender.addFilter(new org.apache.log4j.spi.Filter() {
@Override
public int decide(LoggingEvent event) {
records.add(event);
LocationInfo l = event.getLocationInformation();
System.out.printf("[%s:%s] %s%n", l.getFileName(), l.getLineNumber(), event.getMessage());