org.apache.commons.logging.impl.LogFactoryImpl incompatible with
org.apache.commons.logging.LogFactory
properties
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class MyClass {
private static final Log log = LogFactory.getLog(MyClass.class);
public void doSomething() {
log.debug("Debug message");
log.info("Info message");
log.warn("Warning message");
log.error("Error message");
}
}
import org.apache.commons.logging.Log;
public class CustomLogger implements Log {
private StringBuilder logMessage = new StringBuilder();
@Override
public void debug(Object message) {
logMessage.append("[DEBUG] ").append(message.toString());
}
@Override
public void debug(Object message, Throwable t) {
logMessage.append("[DEBUG] ").append(message.toString());
t.printStackTrace();
}
@Override
public boolean isDebugEnabled() {
}
@Override
public void info(Object message) {
logMessage.append("[INFO] ").append(message.toString());
}
@Override
public void warn(Object message) {
logMessage.append("[WARN] ").append(message.toString());
}
@Override
public void error(Object message) {
logMessage.append("[ERROR] ").append(message.toString());
}
@Override
public void error(Object message, Throwable t) {
logMessage.append("[ERROR] ").append(message.toString());
t.printStackTrace();
}
public String getLogMessage() {
return logMessage.toString();
}
}
properties
org.apache.commons.logging.Log=your.package.CustomLogger