rename slf4j.binding system proerty as slf4j.provider

Signed-off-by: Ceki Gulcu <ceki@qos.ch>
This commit is contained in:
Ceki Gulcu 2023-09-03 18:06:27 +02:00
parent 25d742d666
commit 2481810f94
2 changed files with 9 additions and 14 deletions

View File

@ -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();

View File

@ -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"));
}