[logback-user] Avoid pre-initialization upon the first LoggerFactory.getILoggerFactory();

Brice Dutheil brice.dutheil at gmail.com
Fri Jun 10 09:20:49 UTC 2016


Hi,

I would like share a single log configuration for two web-apps that run on
the same container. Yet I want each web-app to log in separate files.

I tried different approach the best one is actually very close to some
solution I later found on the FAQ :
http://logback.qos.ch/faq.html#sharedConfiguration

LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator jc = new JoranConfigurator();
jc.setContext(loggerContext);
loggerContext.reset();
loggerContext.setName(appName); // use ${CONTEXT_NAME} in logback.xml
jc.doConfigure(Objects.requireNonNull(source, "Logback configuration
is missing"));

However for operation reasons we pass the configuration via the system
property logback.configurationFile, so what happens is that the first call
to LoggerFactory.getILoggerFactory() initialise the LoggerContext and
creates files with non initialised variables.

As I’m using the context name, the file names have default in their name
(this is the default value of the context name), if using variable I get a
filename with my-var-name_IS_UNDEFINED.

*The question is :* Is there proper way anyway to avoid this
pre-initialisation to avoid creating this empty file ?

I didn’t found any way to hook in the org.slf4j.LoggerFactory or
org.slf4j.impl.StaticLoggerBinder (of logback-classic).

— Brice
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20160610/28489ac3/attachment.html>


More information about the logback-user mailing list