mirror of https://github.com/qos-ch/slf4j
rename slf4j.binding system proerty as slf4j.provider
Signed-off-by: Ceki Gulcu <ceki@qos.ch>
This commit is contained in:
parent
25d742d666
commit
2481810f94
|
|
@ -32,7 +32,6 @@ import java.security.AccessController;
|
|||
import java.security.PrivilegedAction;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
|
|
@ -49,8 +48,6 @@ import org.slf4j.helpers.SubstituteServiceProvider;
|
|||
import org.slf4j.helpers.Util;
|
||||
import org.slf4j.spi.SLF4JServiceProvider;
|
||||
|
||||
import javax.accessibility.AccessibleComponent;
|
||||
|
||||
/**
|
||||
* The <code>LoggerFactory</code> is a utility class producing Loggers for
|
||||
* various logging APIs, e.g. logback, reload4j, log4j and JDK 1.4 logging.
|
||||
|
|
@ -88,9 +85,9 @@ public final class LoggerFactory {
|
|||
* System property for explicitly setting the provider class. If set and the provider could be instantiated,
|
||||
* then the service loading mechanism will be bypassed.
|
||||
*
|
||||
* @since 2.0.8
|
||||
* @since 2.0.9
|
||||
*/
|
||||
static final public String BINDING_PROP = "slf4j.binding";
|
||||
static final public String PROVIDER_PROPERTY_KEY = "slf4j.provider";
|
||||
|
||||
static final int UNINITIALIZED = 0;
|
||||
static final int ONGOING_INITIALIZATION = 1;
|
||||
|
|
@ -215,12 +212,12 @@ public final class LoggerFactory {
|
|||
}
|
||||
|
||||
static SLF4JServiceProvider loadExplicitlySpecified(ClassLoader classLoader) {
|
||||
String explicitlySpecified = System.getProperty(BINDING_PROP);
|
||||
String explicitlySpecified = System.getProperty(PROVIDER_PROPERTY_KEY);
|
||||
if (null == explicitlySpecified || explicitlySpecified.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
String message = String.format("Attempting to load provider \"%s\" specified via \"%s\" system property", explicitlySpecified, BINDING_PROP);
|
||||
String message = String.format("Attempting to load provider \"%s\" specified via \"%s\" system property", explicitlySpecified, PROVIDER_PROPERTY_KEY);
|
||||
Util.report(message);
|
||||
Class<?> clazz = classLoader.loadClass(explicitlySpecified);
|
||||
Constructor<?> constructor = clazz.getConstructor();
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@ import org.slf4j.spi.SLF4JServiceProvider;
|
|||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.CoreMatchers.instanceOf;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
|
|
@ -29,16 +27,16 @@ public class LoggerFactoryTest {
|
|||
|
||||
@After
|
||||
public void cleanUp() {
|
||||
System.clearProperty(LoggerFactory.BINDING_PROP);
|
||||
System.clearProperty(LoggerFactory.PROVIDER_PROPERTY_KEY);
|
||||
System.setErr(rawSyserr);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExplicitlySpecified() {
|
||||
System.setProperty(LoggerFactory.BINDING_PROP, "org.slf4j.LoggerFactoryTest$TestingProvider");
|
||||
System.setProperty(LoggerFactory.PROVIDER_PROPERTY_KEY, "org.slf4j.LoggerFactoryTest$TestingProvider");
|
||||
SLF4JServiceProvider provider = LoggerFactory.loadExplicitlySpecified(classLoaderOfLoggerFactory);
|
||||
assertTrue("provider should be instance of TestingProvider class", provider instanceof TestingProvider);
|
||||
assertTrue(mockedSyserr.toString().contains(" Attempting to load provider \"org.slf4j.LoggerFactoryTest$TestingProvider\" specified via \"slf4j.binding\" system property"));
|
||||
assertTrue(mockedSyserr.toString().contains(" Attempting to load provider \"org.slf4j.LoggerFactoryTest$TestingProvider\" specified via \"slf4j.provider\" system property"));
|
||||
System.out.println(mockedSyserr.toString());
|
||||
|
||||
|
||||
|
|
@ -51,7 +49,7 @@ public class LoggerFactoryTest {
|
|||
|
||||
@Test
|
||||
public void testExplicitlySpecifyMissingServiceProvider() {
|
||||
System.setProperty(LoggerFactory.BINDING_PROP, "com.example.ServiceProvider");
|
||||
System.setProperty(LoggerFactory.PROVIDER_PROPERTY_KEY, "com.example.ServiceProvider");
|
||||
SLF4JServiceProvider provider = LoggerFactory.loadExplicitlySpecified(classLoaderOfLoggerFactory);
|
||||
assertNull(provider);
|
||||
assertTrue(mockedSyserr.toString().contains("Failed to instantiate the specified SLF4JServiceProvider (com.example.ServiceProvider)"));
|
||||
|
|
@ -59,7 +57,7 @@ public class LoggerFactoryTest {
|
|||
|
||||
@Test
|
||||
public void testExplicitlySpecifyNonServiceProvider() {
|
||||
System.setProperty(LoggerFactory.BINDING_PROP, "java.lang.String");
|
||||
System.setProperty(LoggerFactory.PROVIDER_PROPERTY_KEY, "java.lang.String");
|
||||
assertNull(LoggerFactory.loadExplicitlySpecified(classLoaderOfLoggerFactory));
|
||||
assertTrue(mockedSyserr.toString().contains("Specified SLF4JServiceProvider (java.lang.String) does not implement SLF4JServiceProvider interface"));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue