[
https://issues.apache.org/jira/browse/LOG4J2-747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14094104#comment-14094104
]
Remko Popma commented on LOG4J2-747:
------------------------------------
In the attached WAR file, the web.xml uses
{{<param-name>log4jConfigLocation</param-name>}}.
This is wrong and should be {{log4jConfiguration}}, not log4jConfigLocation.
(Your most recent comment uses the correct key, so you may have already fixed
this.)
I looked at the [source
code|http://logging.apache.org/log4j/2.x/log4j-web/xref/org/apache/logging/log4j/web/Log4jWebInitializerImpl.html#83]
and it is using a StrSubstitutor which should take care of looking up
environment variables.
However, it is probably better to take things one step at a time and first make
sure log4j can find a configuration without environment variables first, then
try adding environment variables. Looking at the source for [resolving the
location|http://logging.apache.org/log4j/2.x/log4j-web/xref/org/apache/logging/log4j/web/Log4jWebInitializerImpl.html#142],
it looks like a path like {{/WEB-INF/config/log4j2.xml}} should work (assuming
that a file named log4j2.xml actually exists in the /WEB-INF/config/ folder in
the web app.
You said you had trouble getting the
<param-value>/WEB-INF/config/log4j2.xml</param-value> to work. (I don't think
you need additional context parameters.) We should fix this first.
Things to double-check:
* <param-name> is {{log4jConfiguration}}, not log4jConfigLocation
* The /WEB-INF/config/log4j2.xml file really exists (in the attached WAR this
file does not exist, only log4j-*.xml files. Please double-check the spelling).
* You have log4j-web-2.0.1.jar in the classpath
* Are you seeing any error messages? (If so, what are they?)
> 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
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]