[slf4j-user] Fwd: SLF4J Warning - Loggers will not work as they were created during initialization phase

Ceki ceki at qos.ch
Mon Jan 15 22:21:01 CET 2018


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.manna at gmail.com 
> <mailto:subharaj.manna at 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 at qos.ch <mailto:slf4j-user at 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 at qos.ch
> http://mailman.qos.ch/mailman/listinfo/slf4j-user
> 


More information about the slf4j-user mailing list