[ https://issues.apache.org/jira/browse/LOG4J2-747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14094176#comment-14094176 ]
Remko Popma commented on LOG4J2-747: ------------------------------------ log4j-web-2.0.1.jar contains a /META-INF/web-fragment.xml that looks like this: {code} <web-fragment xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd" version="3.0" metadata-complete="true"> <!-- The Log4j web fragment must be loaded before all other fragments. The configuration below should make this happen automatically. If you experience problems, try specifying an <absolute-ordering> in your web.xml deployment descriptor. --> <name>log4j</name> <distributable /> <ordering> <before> <others /> </before> </ordering> </web-fragment> {code} Note the <name>log4j</name> element. Since the error message says "two fragments have the name [log4j]", I suspect there is another jar in the classpath with this fragment. Older versions of log4j2 used to have the web-related logic (and this fragment) in the log4j-core jar. Could it be there is an older version (pre 2.0) of log4j-core in the classpath? > 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