1 package org.slf4j.reload4j; 2 3 import org.apache.log4j.Level; 4 import org.slf4j.ILoggerFactory; 5 import org.slf4j.IMarkerFactory; 6 import org.slf4j.helpers.BasicMarkerFactory; 7 import org.slf4j.helpers.Reporter; 8 import org.slf4j.helpers.Util; 9 import org.slf4j.spi.MDCAdapter; 10 import org.slf4j.spi.SLF4JServiceProvider; 11 12 public class Reload4jServiceProvider implements SLF4JServiceProvider { 13 14 /** 15 * Declare the version of the SLF4J API this implementation is compiled against. 16 * The value of this field is modified with each major release. 17 */ 18 // to avoid constant folding by the compiler, this field must *not* be final 19 public static String REQUESTED_API_VERSION = "2.0.99"; // !final 20 21 private ILoggerFactory loggerFactory; 22 private IMarkerFactory markerFactory; 23 private MDCAdapter mdcAdapter; 24 Reload4jServiceProvider()25 public Reload4jServiceProvider() { 26 try { 27 @SuppressWarnings("unused") 28 Level level = Level.TRACE; 29 } catch (NoSuchFieldError nsfe) { 30 Reporter.error("This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version"); 31 } 32 } 33 34 @Override initialize()35 public void initialize() { 36 loggerFactory = new Reload4jLoggerFactory(); 37 markerFactory = new BasicMarkerFactory(); 38 mdcAdapter = new Reload4jMDCAdapter(); 39 } 40 41 @Override getLoggerFactory()42 public ILoggerFactory getLoggerFactory() { 43 return loggerFactory; 44 } 45 46 47 @Override getMarkerFactory()48 public IMarkerFactory getMarkerFactory() { 49 return markerFactory; 50 } 51 52 53 @Override getMDCAdapter()54 public MDCAdapter getMDCAdapter() { 55 return mdcAdapter; 56 } 57 58 @Override getRequestedApiVersion()59 public String getRequestedApiVersion() { 60 return REQUESTED_API_VERSION; 61 } 62 } 63