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