Is there a reason you didn’t use one of the Configurator.initialize() methods?
Ralph > On Aug 25, 2017, at 2:17 AM, Darlea, Radu <radu.dar...@finastra.com> wrote: > > Answering myself: > The only solution I found by successive tries was to give up using the web > app style of integrating log4j2 and do it as in a standalone app. > 1. I removed log4j-web jar > 2. I removed any listener and servlet and parameter from web.xml > regarding log4j2 > 3. I placed the log4j2.xml in classes (otherwise I found no way to > avoid the error message No log4j2 configuration file found) > 4. I removed any static initialization of logger in the listeners > listed in web.xml > 5. I change the code somehow similar to app initialization > > System.setProperty("FTMIDDLE_LOGDIR", fullPathLogDir.toString()); > // start and configure the logger > LoggerContext context = > ((LoggerContext)org.apache.logging.log4j.LogManager.getContext(false)); > // just for debugging > Configuration log4jConfiguration = context.getConfiguration(); > getLogger().info("Finished configuring log4j. The configuration file is: " > + context.getConfigLocation() > + "\nThe configuration details are: \n[appender : " > + log4jConfiguration.getAppenders().toString() + "]" > + "\n[loggers : " + log4jConfiguration.getLoggers().toString() + "]"); > > This is the only line that matters LoggerContext context = > ((LoggerContext)org.apache.logging.log4j.LogManager.getContext(false)); > > After it, the loggers get correctly initialized, including in the servlet > listeners > private static Logger logger = null; > private static Logger getLogger() { > if (logger == null) { > logger = LogManager.getLogger(ContextListener.class); > } > return logger; > } > > I am not happy with this approach, but at least appears to be fine > functionally. > > Thx, Radu > Ext. 22912 > Mobile + (40)7405 71909 > Advance notice of absence July 6th, 7th; July 24th to August 4th > > From: Darlea, Radu > Sent: Monday, August 21, 2017 10:32 AM > To: log4j-user@logging.apache.org > Subject: RE: Log4j2 - setting programatically the env variable > > Hi > > Anyone having a clue, please? > > Thx, Radu > > From: Darlea, Radu > Sent: Thursday, August 17, 2017 6:10 PM > To: log4j-user@logging.apache.org <mailto:log4j-user@logging.apache.org> > Subject: Log4j2 - setting programatically the env variable > > Hi > > Please find the snippet of web.xml > > <?xml version="1.0" encoding="ISO-8859-1"?> > > <web-app xmlns="http://java.sun.com/xml/ns/javaee > <http://java.sun.com/xml/ns/javaee>" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance > <http://www.w3.org/2001/XMLSchema-instance>" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd > <http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd>" > version="3.0"> > > <display-name>ft-middle</display-name> > <context-param> > <param-name>isLog4jAutoInitializationDisabled</param-name> > <param-value>true</param-value> > </context-param> > > <listener> > <listener-class>summit.feserver.ContextListener</listener-class> > </listener> > > <!-- Define servlet-mapped and path-mapped --> > <servlet> > <servlet-name>MessageHandler</servlet-name> > <servlet-class>summit.feserver.MessageHandlerServlet</servlet-class> > <init-param> > <param-name>packet_size</param-name> > <param-value>1024</param-value> > <description>Specify response packet size, in unit of > KB</description> > </init-param> > </servlet> > > </web-app> > > Please find the deployed libraries > juli-6.0.16.jar > juli-LICENSE.txt > log4j-1.2-api-2.8.2.jar > log4j-api-2.8.2.jar > log4j-core-2.8.2.jar > log4j-web-2.8.2.jar > in Tomcat 8.5.20 > > Please find the log4j2 configuration saved as log4j2.xml in > tomcat\webapps\ft_middle_ws\WEB-INF > <?xml version="1.0" encoding="UTF-8"?> > <Configuration status="warn"> > > <Appenders> > <RollingFile name="FTDailyFileAppender" > fileName="${sys:FTMIDDLE_LOGDIR}/FTMiddle.log" > filePattern="${sys:FTMIDDLE_LOGDIR}/FTMiddle-%d{yyyy-MM-dd}.log"> > <PatternLayout> > > <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern> > </PatternLayout> > <Policies> > > <TimeBasedTriggeringPolicy interval="1" modulate="true" /> > </Policies> > </RollingFile> > > <Console name="console" target="SYSTEM_OUT"> > <PatternLayout > pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" /> > </Console> > </Appenders> > > <Loggers> > <Logger name="summit.feserver" level="info" > additivity="false"> > <appender-ref > ref="FTDailyFileAppender" level="info" /> > </Logger> > > <Root level="info" additivity="false"> > <appender-ref ref="console" /> > </Root> > </Loggers> > > </Configuration> > > > Please find the logs > > 16-Aug-2017 18:08:51.272 INFO [localhost-startStop-1] > org.apache.catalina.startup.HostConfig.deployWAR Deploying web application > archive [D:\soft\apache-tomcat-8.5.20\webapps\ft_middle_ws.war] > 16-Aug-2017 18:08:53.202 INFO [localhost-startStop-1] > org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned > for TLDs yet contained no TLDs. Enable debug logging for this logger for a > complete list of JARs that were scanned but no TLDs were found in them. > Skipping unneeded JARs during scanning can improve startup time and JSP > compilation time. > DEBUG StatusLogger Loaded Provider Provider[priority=10, > className=org.apache.logging.log4j.core.impl.Log4jContextFactory, > url=jar:file:/D:/soft/apache-tomcat-8.5.20/webapps/ft_middle_ws/WEB-INF/lib/log4j-core-2.8.2.jar!/META-INF/log4j-provider.properties, > classLoader=ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > ] > DEBUG StatusLogger Using ShutdownCallbackRegistry class > org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry > DEBUG StatusLogger Took 0.115174 seconds to load 200 plugins from > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > > DEBUG StatusLogger PluginManager 'Converter' found 41 plugins > DEBUG StatusLogger Jansi is not installed, cannot find > org.fusesource.jansi.WindowsAnsiOutputStream > DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-1 > DEBUG StatusLogger Starting LoggerContext[name=4115ca21, > org.apache.logging.log4j.core.LoggerContext@66327786 > <mailto:org.apache.logging.log4j.core.LoggerContext@66327786>]... > DEBUG StatusLogger Reconfiguration started for context[name=4115ca21] at URI > null (org.apache.logging.log4j.core.LoggerContext@66327786 > <mailto:org.apache.logging.log4j.core.LoggerContext@66327786>) with optional > ClassLoader: null > DEBUG StatusLogger PluginManager 'ConfigurationFactory' found 4 plugins > DEBUG StatusLogger Missing dependencies for Yaml support > DEBUG StatusLogger Missing dependencies for Json support > DEBUG StatusLogger Using configurationFactory > org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@59c2c435 > <mailto:org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@59c2c435> > TRACE StatusLogger Trying to find [log4j2-test4115ca21.properties] using > context class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test4115ca21.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.properties] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yml] using context > class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yaml] using context > class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.yaml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test4115ca21.json] using context > class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test4115ca21.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.json] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test4115ca21.jsn] using context > class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test4115ca21.jsn] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.jsn] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.jsn] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test4115ca21.xml] using context > class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test4115ca21.xml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.xml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test4115ca21.xml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test.properties] using context > class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.properties] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test.yml] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test.yml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.yml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.yml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test.yaml] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.yaml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test.json] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.json] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test.jsn] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test.jsn] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.jsn] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.jsn] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2-test.xml] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test.xml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.xml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2-test.xml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j24115ca21.properties] using context > class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j24115ca21.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.properties] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j24115ca21.yml] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j24115ca21.yml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.yml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.yml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j24115ca21.yaml] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j24115ca21.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.yaml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j24115ca21.json] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j24115ca21.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.json] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j24115ca21.jsn] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j24115ca21.jsn] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.jsn] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.jsn] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j24115ca21.xml] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j24115ca21.xml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.xml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j24115ca21.xml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2.properties] using context class > loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.properties] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2.yml] using context class loader > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2.yml] using ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.yml] using ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.yml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2.yaml] using context class loader > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.yaml] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.yaml] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2.json] using context class loader > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.json] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.json] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2.jsn] using context class loader > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2.jsn] using ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.jsn] using ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.jsn] using > ClassLoader.getSystemResource(). > TRACE StatusLogger Trying to find [log4j2.xml] using context class loader > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2.xml] using ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.xml] using ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.xml] using > ClassLoader.getSystemResource(). > ERROR StatusLogger No log4j2 configuration file found. Using default > configuration: logging only errors to the console. Set system property > 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show > Log4j2 internal initialization logging. > DEBUG StatusLogger PluginManager 'Converter' found 41 plugins > DEBUG StatusLogger Jansi is not installed, cannot find > org.fusesource.jansi.WindowsAnsiOutputStream > DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-2 > DEBUG StatusLogger Initializing configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a> > DEBUG StatusLogger Installed script engines > DEBUG StatusLogger Oracle Nashorn Version: 1.8.0_65, Language: ECMAScript, > Threading: Not Thread Safe, Compile: true, Names: {nashorn, Nashorn, js, JS, > JavaScript, javascript, ECMAScript, ecmascript} > DEBUG StatusLogger PluginManager 'Core' found 113 plugins > DEBUG StatusLogger PluginManager 'Level' found 0 plugins > DEBUG StatusLogger Configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a> > initialized > DEBUG StatusLogger Starting configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a> > DEBUG StatusLogger Started configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@69c77a4a> > OK. > TRACE StatusLogger Stopping > org.apache.logging.log4j.core.config.DefaultConfiguration@769a518a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@769a518a>... > TRACE StatusLogger DefaultConfiguration notified 1 ReliabilityStrategies that > config will be stopped. > TRACE StatusLogger DefaultConfiguration stopping root LoggerConfig. > TRACE StatusLogger DefaultConfiguration notifying ReliabilityStrategies that > appenders will be stopped. > TRACE StatusLogger DefaultConfiguration stopping remaining Appenders. > DEBUG StatusLogger Shutting down OutputStreamManager SYSTEM_OUT.false.false-1 > DEBUG StatusLogger Shut down OutputStreamManager SYSTEM_OUT.false.false-1, > all resources released: true > DEBUG StatusLogger Appender DefaultConsole-1 stopped with status true > TRACE StatusLogger DefaultConfiguration stopped 1 remaining Appenders. > TRACE StatusLogger DefaultConfiguration cleaning Appenders from 1 > LoggerConfigs. > DEBUG StatusLogger Stopped > org.apache.logging.log4j.core.config.DefaultConfiguration@769a518a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@769a518a> OK > TRACE StatusLogger Reregistering MBeans after reconfigure. > Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@7b8e4405 > > <mailto:Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@7b8e4405> > TRACE StatusLogger Reregistering context (1/1): '4115ca21' > org.apache.logging.log4j.core.LoggerContext@66327786 > <mailto:org.apache.logging.log4j.core.LoggerContext@66327786> > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=StatusLogger' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=ContextSelector' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=Loggers,name=*' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=Appenders,name=*' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=AsyncAppenders,name=*' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=AsyncLoggerRingBuffer' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=Loggers,name=*,subtype=RingBuffer' > DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=4115ca21 > >>>>>>>>>>>>>>>>>Starting the servlet context > >>>>>>>>>>>Set System property FT log dir: > >>>>>>>>>>>D:\soft\apache-tomcat-8.5.20\webapps\ft_middle_ws\\WEB-INF/log > >>>>>>>>>>>>>>Set the log config file to > >>>>>>>>>>>>>>file:/D:/soft/apache-tomcat-8.5.20/webapps/ft_middle_ws/WEB-INF/log.xml > >>>>>>>>>>>>>Inited the log > >>>>>>>>>>>>>>Finished configuring log4j. The configuration file is: > >>>>>>>>>>>>>>file:/D:/soft/apache-tomcat-8.5.20/webapps/ft_middle_ws/WEB-INF/log4j2.xmlsummit.feserver.ContextListener > >>>>>>>>>>>>>> > The configuration details are: > [appender : {FTDailyFileAppender=FTDailyFileAppender, console=console}] > [loggers : {=root, summit.feserver=summit.feserver}] > SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". > SLF4J: Defaulting to no-operation (NOP) logger implementation > SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder > <http://www.slf4j.org/codes.html#StaticLoggerBinder> for further details. > 16-Aug-2017 18:08:54.536 INFO [localhost-startStop-1] > org.apache.catalina.startup.HostConfig.deployWAR Deployment of web > application archive [D:\soft\apache-tomcat-8.5.20\webapps\ft_middle_ws.war] > has finished in [3,263] ms > > Q1. Is isLog4jAutoInitializationDisabled ignored? I see the log4j2 framework > is starting before calling the servlet context and fails. Please note I also > tried with the listeners servlet context like > <listener> > <listener-class>summit.feserver.ContextListener</listener-class> > </listener> > > <listener> > > <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> > </listener> > <filter> > <filter-name>log4jServletFilter</filter-name> > > <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class> > </filter> > <filter-mapping> > <filter-name>log4jServletFilter</filter-name> > <url-pattern>/*</url-pattern> > <dispatcher>REQUEST</dispatcher> > <dispatcher>FORWARD</dispatcher> > <dispatcher>INCLUDE</dispatcher> > <dispatcher>ERROR</dispatcher> > <dispatcher>ASYNC</dispatcher><!-- Servlet 3.0 w/ disabled > auto-initialization only; not supported in 2.5 --> > </filter-mapping> > I say it looks ignored as I see the debugging starting before I have a chance > to do something in web app. > > Q2. How come the log4j2 get eventually configured? I have basically the code > public void contextInitialized(ServletContextEvent arg0) > { > System.out.println(">>>>>>>>>>>>>>>>>Starting the servlet context"); > _ctx = arg0.getServletContext(); > […] > System.setProperty( "FTMIDDLE_LOGDIR", fullPathLogDir ); > System.out.println(">>>>>>>>>>>Set System property FT log dir: " + > fullPathLogDir); > StringBuilder pathToConfigFile = new > StringBuilder().append(path).append(log4jConfig); > _ctx.setInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION, > new File(pathToConfigFile.toString()).toURI().toString()); > System.out.println(">>>>>>>>>>>>>>Set the log config file to " + new > File(pathToConfigFile.toString()).toURI().toString()); > listener.contextInitialized(arg0); > System.out.println(">>>>>>>>>>>>>Inited the log"); > Configuration log4jConfiguration = > LoggerContext.getContext().getConfiguration(); > System.out.println(">>>>>>>>>>>>>>Finished configuring log4j. The > configuration file is: " > + LoggerContext.getContext().getConfigLocation() > + "\nThe configuration details are: \n[appender : " > + log4jConfiguration.getAppenders().toString() + "]" > + "\n[loggers : " + log4jConfiguration.getLoggers().toString() + "]"); > And although initially the logger framework seems to fail > > ERROR StatusLogger No log4j2 configuration file found. Using default > configuration: logging only errors to the console. Set system property > 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show > Log4j2 internal initialization logging. > > In the end actually everything is fine. Not only the logger context correctly > reports the location of configuration file, but also it was capable of > loading correctly the appenders and so it understood the system var. > > Q3. What is changing once I add the log4j2 listener before servlet context > listener? The result is basically the same, but the logs are changing slightly > > 17-Aug-2017 17:16:05.775 INFO [localhost-startStop-1] > org.apache.catalina.startup.HostConfig.deployWAR Deploying web application > archive [D:\soft\apac > he-tomcat-8.5.20\webapps\ft_middle_ws.war] > 17-Aug-2017 17:16:07.455 INFO [localhost-startStop-1] > org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned > for TLDs yet containe > d no TLDs. Enable debug logging for this logger for a complete list of JARs > that were scanned but no TLDs were found in them. Skipping unneeded JARs d > uring scanning can improve startup time and JSP compilation time. > DEBUG StatusLogger Loaded Provider Provider[priority=10, > className=org.apache.logging.log4j.core.impl.Log4jContextFactory, > url=jar:file:/D:/soft/apache-tomcat-8.5.20/webapps/ft_middle_ws/WEB-INF/lib/log4j-core-2.8.2.jar!/META-INF/log4j-provider.properties, > classLoader=ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > ] > DEBUG StatusLogger Using ShutdownCallbackRegistry class > org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry > DEBUG StatusLogger Took 0.106548 seconds to load 200 plugins from > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > > DEBUG StatusLogger PluginManager 'Converter' found 41 plugins > DEBUG StatusLogger Jansi is not installed, cannot find > org.fusesource.jansi.WindowsAnsiOutputStream > DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-1 > DEBUG StatusLogger Starting LoggerContext[name=4115ca21, > org.apache.logging.log4j.core.LoggerContext@2c1c3677 > <mailto:org.apache.logging.log4j.core.LoggerContext@2c1c3677>]... > DEBUG StatusLogger Reconfiguration started for context[name=4115ca21] at URI > null (org.apache.logging.log4j.core.LoggerContext@2c1c3677 > <mailto:org.apache.logging.log4j.core.LoggerContext@2c1c3677>) with optional > ClassLoader: null > DEBUG StatusLogger PluginManager 'ConfigurationFactory' found 4 plugins > DEBUG StatusLogger Missing dependencies for Yaml support > DEBUG StatusLogger Missing dependencies for Json support > DEBUG StatusLogger Using configurationFactory > org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@2e21e291 > <mailto:org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@2e21e291> > TRACE StatusLogger Trying to find [log4j2-test4115ca21.properties] using > context class loader ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > . > TRACE StatusLogger Trying to find [log4j2-test4115ca21.properties] using > ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > […] > TRACE StatusLogger Trying to find [log4j2.xml] using ParallelWebappClassLoader > context: ft_middle_ws > delegate: false > ----------> Parent Classloader: > java.net.URLClassLoader@67b64c45 <mailto:java.net.URLClassLoader@67b64c45> > class loader. > TRACE StatusLogger Trying to find [log4j2.xml] using > ClassLoader.getSystemResource(). > ERROR StatusLogger No log4j2 configuration file found. Using default > configuration: logging only errors to the console. Set system property > 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show > Log4j2 internal initialization logging. > DEBUG StatusLogger PluginManager 'Converter' found 41 plugins > DEBUG StatusLogger Jansi is not installed, cannot find > org.fusesource.jansi.WindowsAnsiOutputStream > DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-2 > DEBUG StatusLogger Initializing configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a> > DEBUG StatusLogger Installed script engines > DEBUG StatusLogger Oracle Nashorn Version: 1.8.0_65, Language: ECMAScript, > Threading: Not Thread Safe, Compile: true, Names: {nashorn, Nashorn, js, JS, > JavaScript, javascript, ECMAScript, ecmascript} > DEBUG StatusLogger PluginManager 'Core' found 113 plugins > DEBUG StatusLogger PluginManager 'Level' found 0 plugins > DEBUG StatusLogger Configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a> > initialized > DEBUG StatusLogger Starting configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a> > DEBUG StatusLogger Started configuration > org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@78c8d24a> > OK. > TRACE StatusLogger Stopping > org.apache.logging.log4j.core.config.DefaultConfiguration@11fe5676 > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@11fe5676>... > TRACE StatusLogger DefaultConfiguration notified 1 ReliabilityStrategies that > config will be stopped. > TRACE StatusLogger DefaultConfiguration stopping root LoggerConfig. > TRACE StatusLogger DefaultConfiguration notifying ReliabilityStrategies that > appenders will be stopped. > TRACE StatusLogger DefaultConfiguration stopping remaining Appenders. > DEBUG StatusLogger Shutting down OutputStreamManager SYSTEM_OUT.false.false-1 > DEBUG StatusLogger Shut down OutputStreamManager SYSTEM_OUT.false.false-1, > all resources released: true > DEBUG StatusLogger Appender DefaultConsole-1 stopped with status true > TRACE StatusLogger DefaultConfiguration stopped 1 remaining Appenders. > TRACE StatusLogger DefaultConfiguration cleaning Appenders from 1 > LoggerConfigs. > DEBUG StatusLogger Stopped > org.apache.logging.log4j.core.config.DefaultConfiguration@11fe5676 > <mailto:org.apache.logging.log4j.core.config.DefaultConfiguration@11fe5676> OK > TRACE StatusLogger Reregistering MBeans after reconfigure. > Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@47de05bb > > <mailto:Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@47de05bb> > TRACE StatusLogger Reregistering context (1/1): '4115ca21' > org.apache.logging.log4j.core.LoggerContext@2c1c3677 > <mailto:org.apache.logging.log4j.core.LoggerContext@2c1c3677> > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=StatusLogger' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=ContextSelector' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=Loggers,name=*' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=Appenders,name=*' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=AsyncAppenders,name=*' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=AsyncLoggerRingBuffer' > TRACE StatusLogger Unregistering but no MBeans found matching > 'org.apache.logging.log4j2:type=4115ca21,component=Loggers,name=*,subtype=RingBuffer' > DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=4115ca21 > 2017-08-17 17:16:08,359 localhost-startStop-1 ERROR Unable to create file > ${sys:FTMIDDLE_LOGDIR}/FTMiddle.log java.io.IOException: The filename, direc > tory name, or volume label syntax is incorrect > at java.io.WinNTFileSystem.canonicalize0(Native Method) > at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428) > at java.io.File.getCanonicalPath(File.java:618) > at java.io.File.getCanonicalFile(File.java:643) > at > org.apache.logging.log4j.core.util.FileUtils.makeParentDirs(FileUtils.java:134) > at > org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:573) > at > org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:554) > at > org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:112) > at > org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114) > at > org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:155) > at > org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:131) > at > org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:60) > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:952) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:892) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:884) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:508) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:232) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:244) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617) > at > org.apache.logging.log4j.core.LoggerContext.setConfigLocation(LoggerContext.java:603) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:157) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:70) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:227) > at > org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:159) > at > org.apache.logging.log4j.web.Log4jWebInitializerImpl.initializeNonJndi(Log4jWebInitializerImpl.java:168) > at > org.apache.logging.log4j.web.Log4jWebInitializerImpl.start(Log4jWebInitializerImpl.java:110) > at > org.apache.logging.log4j.web.Log4jServletContextListener.contextInitialized(Log4jServletContextListener.java:56) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) > at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:988) > at > org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1860) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > > 2017-08-17 17:16:08,363 localhost-startStop-1 ERROR Unable to inject fields > into builder class for plugin type class > org.apache.logging.log4j.core.appender.RollingFileAppender, element > RollingFile. java.lang.IllegalStateException: ManagerFactory > [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@5a7def29] > unable to create manager for [${sys:FTMIDDLE_LOGDIR}/FTMiddle.log] with data > [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@10285321[pattern=${sys:FTMIDDLE_LOGDIR}/FTMiddle-%d{yyyy-MM-dd}.log, > append=true, bufferedIO=true, bufferSize=8192, > policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, > interval=1, modulate=true)]), strategy=DefaultRolloverStrategy(min=1, max=7, > useMax=true), advertiseURI=null, layout=[%-5level] %d{yyyy-MM-dd > HH:mm:ss.SSS} [%t] %c{1} - %msg%n]] > at > org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114) > at > org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114) > at > org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:155) > at > org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:131) > at > org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:60) > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:952) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:892) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:884) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:508) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:232) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:244) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617) > at > org.apache.logging.log4j.core.LoggerContext.setConfigLocation(LoggerContext.java:603) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:157) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:70) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:227) > at > org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:159) > at > org.apache.logging.log4j.web.Log4jWebInitializerImpl.initializeNonJndi(Log4jWebInitializerImpl.java:168) > at > org.apache.logging.log4j.web.Log4jWebInitializerImpl.start(Log4jWebInitializerImpl.java:110) > at > org.apache.logging.log4j.web.Log4jServletContextListener.contextInitialized(Log4jServletContextListener.java:56) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) > at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:988) > at > org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1860) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > > 2017-08-17 17:16:08,371 localhost-startStop-1 ERROR Unable to invoke factory > method in class class > org.apache.logging.log4j.core.appender.RollingFileAppender for element > RollingFile. java.lang.IllegalStateException: No factory method found for > class org.apache.logging.log4j.core.appender.RollingFileAppender > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:224) > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:130) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:952) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:892) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:884) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:508) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:232) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:244) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617) > at > org.apache.logging.log4j.core.LoggerContext.setConfigLocation(LoggerContext.java:603) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:157) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:70) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:227) > at > org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:159) > at > org.apache.logging.log4j.web.Log4jWebInitializerImpl.initializeNonJndi(Log4jWebInitializerImpl.java:168) > at > org.apache.logging.log4j.web.Log4jWebInitializerImpl.start(Log4jWebInitializerImpl.java:110) > at > org.apache.logging.log4j.web.Log4jServletContextListener.contextInitialized(Log4jServletContextListener.java:56) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) > at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:988) > at > org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1860) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > > 2017-08-17 17:16:08,382 localhost-startStop-1 ERROR Null object returned for > RollingFile in Appenders. > 2017-08-17 17:16:08,387 localhost-startStop-1 ERROR Unable to locate appender > "FTDailyFileAppender" for logger config "summit.feserver" > >>>>>>>>>>>>>>>>>Starting the servlet context > … > I mean, how come it doesn’t find the config file (still the ERROR > ERROR StatusLogger No log4j2 configuration file found. Using default > configuration: logging only errors to the console. Set system property > 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show > Log4j2 internal initialization logging. > ) but it reads the file, is senses the missing system var, and in the end, > again it is fine of loading it? > > Q4. Why it is locking the config file? In order to get rid of the ERROR > ERROR StatusLogger No log4j2 configuration file found. Using default > configuration: logging only errors to the console. Set system property > 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show > Log4j2 internal initialization logging. > a dummy config file is stored in the classes directory. No error, log gets > eventually configured through the servlet context, all fine. But on deploy, > the respective dummy config file remains locked and can’t be deteled by > tomcat, so no undeploy. > Yes, I have in close > public void contextDestroyed(ServletContextEvent arg0) > { > org.apache.logging.log4j.LogManager.shutdown(); > } > > All these question can be ignored if you could tell me how can I > programmatically set an env var before log4j2 reads the config file, running > in webapp in tomcat. No, I can’t provide it through the tomcat startup > command line. No, I can’t set it before JVM of tomcat starts. I have to > compute it in tomcat before setting it. And no, I can’t provide it through a > custom map, because I need to read the servlet config params before. Build > system is Ant based, not sure if I can use for instance @Plugin. > > > Yours sincerely, > > Radu Darlea > Development Manager, > FusionCapital Summit > <http://www.misys.com/solutions/fusioncapital/fusioncapital-summit/> > > > > FINASTRA Splaiul Independentei Street, No 319, Sema Parc, Courtyard 1 > Building, Floor 3, Bucharest, Romania > D: +(40)3 1712 2912 | M: + (40)7405 71909 | E: 22912 > radu.dar...@finastra.com <mailto:radu.dar...@finastra.com> > Finastra.com <http://www.finastra.com/> > > > "FINASTRA" is the trade name of the FINASTRA group of companies. This email > and any attachments have been scanned for known viruses using multiple > scanners. This email message is intended for the named recipient only. It may > be privileged and/or confidential. If you are not the named recipient of this > email please notify us immediately and do not copy it or use it for any > purpose, nor disclose its contents to any other person. This email does not > constitute the commencement of legal relations between you and FINASTRA. > Please refer to the executed contract between you and the relevant member of > the FINASTRA group for the identity of the contracting party with which you > are dealing.