org.eclipse.xtend.maven.MavenLog4JConfigurator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of report Show documentation
Show all versions of report Show documentation
The report generator for the Jnario testing language.
The newest version!
package org.eclipse.xtend.maven;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.maven.plugin.logging.Log;
/**
* @author Michael Clay
* @author Moritz Eysholdt
*/
public class MavenLog4JConfigurator {
protected final static Level LOG4J_DEFAULT_LOG_LEVEL = Level.INFO;
public void configureLog4j(Log log) {
if (!Logger.getRootLogger().getAllAppenders().hasMoreElements()) {
try {
Logger.getRootLogger().setLevel(LOG4J_DEFAULT_LOG_LEVEL);
} catch (NoSuchMethodError e) {
// see http://bugzilla.slf4j.org/show_bug.cgi?id=279
}
Logger.getRootLogger().addAppender(createMojoLogAppender(log));
} else {
configureLog4j(log, "org.eclipse.xtext");
configureLog4j(log, "org.eclipse.xtend");
}
}
protected void configureLog4j(Log log, String name) {
Logger logger = Logger.getLogger(name);
logger.setAdditivity(false);
try {
logger.setLevel(LOG4J_DEFAULT_LOG_LEVEL);
} catch (NoSuchMethodError e) {
// see http://bugzilla.slf4j.org/show_bug.cgi?id=279
}
logger.removeAllAppenders();
logger.addAppender(createMojoLogAppender(log));
}
protected AppenderSkeleton createMojoLogAppender(final Log log) {
return new AppenderSkeleton() {
@Override
protected void append(LoggingEvent event) {
if (event.getMessage() == null) {
return;
}
if (Level.DEBUG == event.getLevel()) {
log.debug((CharSequence) event.getMessage(), getThrowable(event));
} else if (Level.INFO == event.getLevel()) {
log.info((CharSequence) event.getMessage(), getThrowable(event));
} else if (Level.WARN == event.getLevel()) {
log.warn((CharSequence) event.getMessage(), getThrowable(event));
} else if (Level.ERROR == event.getLevel()) {
log.error((CharSequence) event.getMessage(), getThrowable(event));
}
}
public void close() {
}
private Throwable getThrowable(LoggingEvent event) {
return event.getThrowableInformation() != null ? event.getThrowableInformation().getThrowable() : null;
}
public boolean requiresLayout() {
return false;
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy