[ 
https://issues.apache.org/jira/browse/LOG4J2-747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14094875#comment-14094875
 ] 

Remko Popma commented on LOG4J2-747:
------------------------------------

Progress! Very good. 

I think there are two approaches we can take going forward:
# Keep trying to make the environment $\{env:somevar\} or system property 
$\{sys:somevar\} work in the path to the configuration. Next step here would be 
trying to URL-encode the '$' and perhaps also the '\{' and '\}' characters.
# Use a different approach. Have one single log4j2.xml file, and point to that 
from log4jConfiguration. We know this works now. Then, from inside that 
log4j2.xml config file, use XInclude to point to the actual loggers and 
appenders you want to use. Part of the XInclude path would be an environment 
$\{env:somevar\} or system property $\{sys:somevar\} so you still have 
different configurations for different scenarios.

See LOG4J2-341 for an example, I don't think XInclude is documented on the 
log4j2 web site anywhere.

Again, if you decide to use the XInclude approach, do this step by step, so 
first without environment variables to make sure it works, then introduce the 
variables.

> Servlet Example of using different log4j2-{env:envValue}.xml
> ------------------------------------------------------------
>
>                 Key: LOG4J2-747
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-747
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Configurators
>    Affects Versions: 2.0-beta9
>         Environment: Websphere 8.5 Windows 7 
>            Reporter: A B
>         Attachments: LOG4J2-747_Jira.war, LOG4J2747_Jira_Sample3.ear, log4j2 
> location.jpg, log4j2-webapp-error.txt
>
>
> Based on my previous post / question on the log4j2 user list - Defining 
> different log4j2.xml configurations based on environment - 
> http://apache-logging.6191.n7.nabble.com/Defining-different-log4j2-xml-configurations-based-on-environment-tp40639p40662.html
>  - I was attempting to create a  Servlet Example of using different 
> log4j2-\{env:envValue\}.xml.  
> Based on the answers in this thread "Defining different log4j2.xml 
> configurations based on environment", from log4j user list I tried to test 
> using a different config for different environments. This is what I have done.
> * I defined a Windows env variable {{websphere_environment}} and set its 
> value to "local"
> * I specify the config location as log4j2-\{env:envValue\}.xml. My web.xml 
> context-param looks like below - servlet version is 3.0.
> {code}
> <context-param>
>     <param-name>log4jConfigLocation</param-name>
>     <param-value>/WEB-INF/config/log4j2-${env:websphere_environment}.xml
>     </param-value>
> </context-param>
> {code}
> My relevant servlet method looks like below
> {code}
> protected void doGet(HttpServletRequest request, HttpServletResponse 
> response) throws
>     ServletException, IOException {
>     Logger logger = Logger.getLogger(ServletLog4j2Test.class.getName());
>     logger.fatal("Loaded:);
>     //    " + /WEB-INF/config/log4j2-${env:websphere_environment}.xml
> }
> {code}
> I do not have the lo4j2-local.xml defined in the WEB-INF/config ( it is 
> defined as log4j-local.xml, not log4j2-local.xml and was expecting to get an 
> error but it seems that the servlet is using a default configuration, because 
> when I run the servlet, I get
> {code}
> "07/24/14 07:14:07:564:FATAL:WebContainer : 0:        :     
> :com.test.log4j2.ServletLog4j2Test: Loaded:"
> {code}
> How should my web-app and config files be set-up so that I can use different 
> configs for different environments based on the environment?
>  



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to