Log4jLog explicitly passes String argument (avoiding argument expansion)

Issue: SPR-16226
This commit is contained in:
Juergen Hoeller
2017-11-22 21:13:39 +01:00
parent b7c924cac1
commit 93f17dae47

View File

@@ -206,92 +206,108 @@ public abstract class LogFactory {
@Override
public boolean isFatalEnabled() {
return logger.isEnabled(Level.FATAL, null, null);
return this.logger.isEnabled(Level.FATAL);
}
@Override
public boolean isErrorEnabled() {
return logger.isEnabled(Level.ERROR, null, null);
return this.logger.isEnabled(Level.ERROR);
}
@Override
public boolean isWarnEnabled() {
return logger.isEnabled(Level.WARN, null, null);
return this.logger.isEnabled(Level.WARN);
}
@Override
public boolean isInfoEnabled() {
return logger.isEnabled(Level.INFO, null, null);
return this.logger.isEnabled(Level.INFO);
}
@Override
public boolean isDebugEnabled() {
return logger.isEnabled(Level.DEBUG, null, null);
return this.logger.isEnabled(Level.DEBUG);
}
@Override
public boolean isTraceEnabled() {
return logger.isEnabled(Level.TRACE, null, null);
return this.logger.isEnabled(Level.TRACE);
}
@Override
public void fatal(Object message) {
logger.logIfEnabled(FQCN, Level.FATAL, null, message, null);
log(Level.FATAL, message, null);
}
@Override
public void fatal(Object message, Throwable exception) {
logger.logIfEnabled(FQCN, Level.FATAL, null, message, exception);
log(Level.FATAL, message, exception);
}
@Override
public void error(Object message) {
logger.logIfEnabled(FQCN, Level.ERROR, null, message, null);
log(Level.ERROR, message, null);
}
@Override
public void error(Object message, Throwable exception) {
logger.logIfEnabled(FQCN, Level.ERROR, null, message, exception);
log(Level.ERROR, message, exception);
}
@Override
public void warn(Object message) {
logger.logIfEnabled(FQCN, Level.WARN, null, message, null);
log(Level.WARN, message, null);
}
@Override
public void warn(Object message, Throwable exception) {
logger.logIfEnabled(FQCN, Level.WARN, null, message, exception);
log(Level.WARN, message, exception);
}
@Override
public void info(Object message) {
logger.logIfEnabled(FQCN, Level.INFO, null, message, null);
log(Level.INFO, message, null);
}
@Override
public void info(Object message, Throwable exception) {
logger.logIfEnabled(FQCN, Level.INFO, null, message, exception);
log(Level.INFO, message, exception);
}
@Override
public void debug(Object message) {
logger.logIfEnabled(FQCN, Level.DEBUG, null, message, null);
log(Level.DEBUG, message, null);
}
@Override
public void debug(Object message, Throwable exception) {
logger.logIfEnabled(FQCN, Level.DEBUG, null, message, exception);
log(Level.DEBUG, message, exception);
}
@Override
public void trace(Object message) {
logger.logIfEnabled(FQCN, Level.TRACE, null, message, null);
log(Level.TRACE, message, null);
}
@Override
public void trace(Object message, Throwable exception) {
logger.logIfEnabled(FQCN, Level.TRACE, null, message, exception);
log(Level.TRACE, message, exception);
}
private void log(Level level, Object message, Throwable exception) {
if (message instanceof String) {
// Explicitly pass a String argument, avoiding Log4j's argument expansion
// for message objects in case of "{}" sequences (SPR-16226)
if (exception != null) {
this.logger.logIfEnabled(FQCN, level, null, (String) message, exception);
}
else {
this.logger.logIfEnabled(FQCN, level, null, (String) message);
}
}
else {
this.logger.logIfEnabled(FQCN, level, null, message, exception);
}
}
}