Differentiate internal LogAdapter from core.log.LogDelegateFactory

Issue: SPR-16585
Issue: SPR-17012
master
Juergen Hoeller 6 years ago
parent d3b244a81b
commit 31bfc1dc2b
  1. 28
      spring-jcl/src/main/java/org/apache/commons/logging/LogAdapter.java
  2. 2
      spring-jcl/src/main/java/org/apache/commons/logging/LogFactory.java
  3. 2
      spring-jcl/src/main/java/org/apache/commons/logging/LogFactoryService.java

@ -28,18 +28,18 @@ import org.slf4j.LoggerFactory;
import org.slf4j.spi.LocationAwareLogger; import org.slf4j.spi.LocationAwareLogger;
/** /**
* Spring's common JCL delegate behind {@link LogFactory} and {@link LogFactoryService}. * Spring's common JCL adapter behind {@link LogFactory} and {@link LogFactoryService}.
* Detects the presence of Log4j 2.x / SLF4J, falling back to {@code java.util.logging}. * Detects the presence of Log4j 2.x / SLF4J, falling back to {@code java.util.logging}.
* *
* @author Juergen Hoeller * @author Juergen Hoeller
* @since 5.1 * @since 5.1
*/ */
final class LogDelegate { final class LogAdapter {
private static LogApi logApi = LogApi.JUL; private static LogApi logApi = LogApi.JUL;
static { static {
ClassLoader cl = LogDelegate.class.getClassLoader(); ClassLoader cl = LogAdapter.class.getClassLoader();
try { try {
// Try Log4j 2.x API // Try Log4j 2.x API
cl.loadClass("org.apache.logging.log4j.spi.ExtendedLogger"); cl.loadClass("org.apache.logging.log4j.spi.ExtendedLogger");
@ -65,7 +65,7 @@ final class LogDelegate {
} }
private LogDelegate() { private LogAdapter() {
} }
@ -76,19 +76,19 @@ final class LogDelegate {
public static Log createLog(String name) { public static Log createLog(String name) {
switch (logApi) { switch (logApi) {
case LOG4J: case LOG4J:
return Log4jDelegate.createLog(name); return Log4jAdapter.createLog(name);
case SLF4J_LAL: case SLF4J_LAL:
return Slf4jDelegate.createLocationAwareLog(name); return Slf4jAdapter.createLocationAwareLog(name);
case SLF4J: case SLF4J:
return Slf4jDelegate.createLog(name); return Slf4jAdapter.createLog(name);
default: default:
// Defensively use lazy-initializing delegate class here as well since the // Defensively use lazy-initializing adapter class here as well since the
// java.logging module is not present by default on JDK 9. We are requiring // java.logging module is not present by default on JDK 9. We are requiring
// its presence if neither Log4j nor SLF4J is available; however, in the // its presence if neither Log4j nor SLF4J is available; however, in the
// case of Log4j or SLF4J, we are trying to prevent early initialization // case of Log4j or SLF4J, we are trying to prevent early initialization
// of the JavaUtilLog adapter - e.g. by a JVM in debug mode - when eagerly // of the JavaUtilLog adapter - e.g. by a JVM in debug mode - when eagerly
// trying to parse the bytecode for all the cases of this switch clause. // trying to parse the bytecode for all the cases of this switch clause.
return JavaUtilDelegate.createLog(name); return JavaUtilAdapter.createLog(name);
} }
} }
@ -96,7 +96,7 @@ final class LogDelegate {
private enum LogApi {LOG4J, SLF4J_LAL, SLF4J, JUL} private enum LogApi {LOG4J, SLF4J_LAL, SLF4J, JUL}
private static class Log4jDelegate { private static class Log4jAdapter {
public static Log createLog(String name) { public static Log createLog(String name) {
return new Log4jLog(name); return new Log4jLog(name);
@ -104,7 +104,7 @@ final class LogDelegate {
} }
private static class Slf4jDelegate { private static class Slf4jAdapter {
public static Log createLocationAwareLog(String name) { public static Log createLocationAwareLog(String name) {
Logger logger = LoggerFactory.getLogger(name); Logger logger = LoggerFactory.getLogger(name);
@ -118,7 +118,7 @@ final class LogDelegate {
} }
private static class JavaUtilDelegate { private static class JavaUtilAdapter {
public static Log createLog(String name) { public static Log createLog(String name) {
return new JavaUtilLog(name); return new JavaUtilLog(name);
@ -353,7 +353,7 @@ final class LogDelegate {
} }
protected Object readResolve() { protected Object readResolve() {
return Slf4jDelegate.createLog(this.name); return Slf4jAdapter.createLog(this.name);
} }
} }
@ -449,7 +449,7 @@ final class LogDelegate {
@Override @Override
protected Object readResolve() { protected Object readResolve() {
return Slf4jDelegate.createLocationAwareLog(this.name); return Slf4jAdapter.createLocationAwareLog(this.name);
} }
} }

@ -64,7 +64,7 @@ public abstract class LogFactory {
* @param name logical name of the <code>Log</code> instance to be returned * @param name logical name of the <code>Log</code> instance to be returned
*/ */
public static Log getLog(String name) { public static Log getLog(String name) {
return LogDelegate.createLog(name); return LogAdapter.createLog(name);
} }

@ -37,7 +37,7 @@ public class LogFactoryService extends LogFactory {
@Override @Override
public Log getInstance(String name) { public Log getInstance(String name) {
return LogDelegate.createLog(name); return LogAdapter.createLog(name);
} }

Loading…
Cancel
Save