Dear Log4j Team,
 
First of all, thanks for your work. I am Leo, an Spanish web developer that 
need some help.
 
I am migrating one of our project from slf4j v. 1.7.21 to log4j v.2.11.1 and I 
have this problem:
 
-In my web project, we need to have the log4j.configurationFile with a 
particular name: Particular_web_app_log4j2.properties (example name)
 
We cannot set the default log4j2.properties, log4j2.xml, etc in our repository.
In slf4j we solved this situation with this code. (with this, all sl4j 
configuration is loaded from our custom log4j.properties):
 
      URL log4jURL = Loader.getResource(Log4javaFileName);
      if (log4jURL == null) {
            throw new Exception();
      }
      PropertyConfigurator.configure(log4jURL);
 
In log4j2 this method is deprecated and I found some alternatives, but any of 
them worked.
Solution one:
Set this property in my first line of code:
System.setProperty("log4j.configurationFile",Log4java2FileName);
               It not works in my Websphere Application Server because log4j2 
try to charge before my first web app line of code.
Solution two:
                                using java -D option which sets a system 
property on server start.
                                It not works in my Websphere Application Server 
because it is an application server with other applications and we share the 
node, this change can affect to other apps.
Solution three:
Using an recharge of properties from custom XML properties:
InputStream log4javaFile = 
getClass().getClassLoader().getResourceAsStream(Log4java2FileName);
            ConfigurationSource configuration = 
newConfigurationSource(log4javaFile);
Configurator.initialize(null, configuration);
It not works in my project because a regret to include this code in my 
InitContext (first point of code), this change only affect in some class, not 
in all context. (I have different servlets in my application and there are not 
affected by this change)
 
Question:
                Is there an easy alternative for adjusting the properties file? 
(some like slf4j configuration)

I would be very grateful if you could help me because I can not find a solution 
and I would like to be able to use the new log4j2.
Best regards!

Reply via email to