As of SLF4J 1.7.15, slf4j-api stores and replays events that were created during the initialization phase. In previous versions, these events were lost. However, logging events occurring after initialization should work fine in all versions.

I suggest upgrading slf4j-api to 1.7.25.

On 15.01.2018 20:14, Debraj Manna wrote:

---------- Forwarded message ----------
From: *Debraj Manna* <subharaj.ma...@gmail.com <mailto:subharaj.ma...@gmail.com>>
Date: Tue, Jan 16, 2018 at 12:30 AM
Subject: SLF4J Warning - Loggers will not work as they were created during initialization phase
To: slf4j-user@qos.ch <mailto:slf4j-user@qos.ch>


Cross-posting from stackoverflow <https://stackoverflow.com/questions/48268724/slf4j-warning-loggers-will-not-work-as-they-were-created-during-initialization>

I am using slf4j with logback in a dropwizard application. During the application initialization I am seeing logs like below

|SLF4J:Thefollowing loggers will not work because they were created SLF4J:during the defaultconfiguration phase of the underlying logging system.SLF4J:Seealso http://www.slf4j.org/codes.html#substituteLogger <http://www.slf4j.org/codes.html#substituteLogger>SLF4J:com.vnera.healthandmetrics.VneraMetrics|

I am using |logback.xml| with my dropwizard application. My code flow looks like below

|publicclassVneraMetrics{privatestaticfinalLoggerlogger =LoggerFactory.getLogger(VneraMetrics.class);...// This method is getting called from Service.run() during the dropwizard application initializationpublicStringgetSomeValue(){// logger is not accessed from this functionreturn"Some initialized value";}}publicclassServiceextendsApplication<Conf>{publicstaticfinalLoggerlogger =LoggerFactory.getLogger(Service.class);publicstaticvoidmain(Stringargs[]){logger.info("Some logs");Serviceservice =newService();service.run(dropWizardArgs);Utils.reloadLogger();}}|

|Utils.reloadLogger()| is loading the loggback configuration as discussed here

|publicstaticvoidreloadLogger(){StringloggingConfig =System.getProperty("logback.configurationFile");if(loggingConfig ==null){System.out.println("Logging Config is null");}LoggerContextloggerContext =(LoggerContext)LoggerFactory.getILoggerFactory();loggerContext.reset();JoranConfiguratorconfigurator =newJoranConfigurator();try{InputStreamconfigStream =FileUtils.openInputStream(newFile(loggingConfig));configurator.setContext(loggerContext);configurator.doConfigure(configStream);// loads logback fileconfigStream.close();System.out.println("Loaded configuration file");}catch(JoranException|IOExceptione){e.printStackTrace();System.out.println("Failed to log configuration file");System.exit(1);}}}|

*Versions*

  * Logback - 1.2.3
  * Dropwizard - 1.0.2

Can some one let me know what does the SLF4J warning denotes? I have seen the substituteLogger <http://www.slf4j.org/codes.html#substituteLogger> page but this does not mention how can I get around this? On trying to use logger in |VneraMetrics| it is not printing anything.




_______________________________________________
slf4j-user mailing list
slf4j-user@qos.ch
http://mailman.qos.ch/mailman/listinfo/slf4j-user

_______________________________________________
slf4j-user mailing list
slf4j-user@qos.ch
http://mailman.qos.ch/mailman/listinfo/slf4j-user

Reply via email to