From what you are describing I would set log4jConfiguration in your web 
application’s web.xml as a context parameter. See 
http://logging.apache.org/log4j/2.x/manual/webapp.html 
<http://logging.apache.org/log4j/2.x/manual/webapp.html>.

Ralph


> On Dec 5, 2018, at 7:54 AM, paginas <paralaspagin...@gmail.com> wrote:
> 
> 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