A correction, after doing more troubleshooting and using even the
original log4j2.xml (on the previous install) it seems that the old
version was logging nothing to the files from Tomcat itself, and was
displaying everything on the console instead... in whatever mechanism it
wanted, so only my own apps were logging to the log4j files, with the
Tomcat output getting lost.

So, the problem remains, it is not clear at all how you configure Tomcat
9 to use log4j2 after all, and none of the guides on the internet are
complete enough to follow verbatim.

On 1/6/2022 11:37 AM, Bruno Melloni wrote:
A couple months ago I had no problem configuring Tomcat 9 with java 16 to use log4j2.

That time I simply deleted tomcat/conf/*logging.properties*, added to *tomcat/lib* the following files and it worked.

 * log4j-api-2.*.jar
 * log4j-core-2.*.jar
 * log4j-appserver-2.*.jar
 * log4j2.xml

Now I am setting up a new tomcat 9.0.56 with java 17 and log4j 2.17.1, followed the same steps with one difference... I tweaked the log4j2.xml to try to make it cleaner and easier to maintain/adjust.

Unfortunately my new setup is failing to log anything at all. The only place where I see something is on the console and it looks like it is not even log4j output as it does not match the pattern I expected.  I think I am misunderstanding something about the use of properties in a log4j2.xml file or I have some really dumb typo.

I hope someone can give a glance at the following and tell me where I messed up:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO"> <!-- used for internal log4j2 logging, not related to apps or server -->
  <Properties>
    <Property name="appslogdir">D:/work/app-j17t9-C/logs</Property>
    <Property name="appsarchivedir">D:/work/app-j17t9-C/logs/archive</Property>     <Property name="serverlogdir">D:/work/app-j17t9-C/logs/server</Property>     <Property name="serverarchivedir">D:/work/app-j17t9-C/logs/server/archive</Property>
    <Property name="layout">%d %-5p [%C] %m%n</Property>
    <Property name="rolloversize">10 MB</Property>
  </Properties>
  <Appenders>
    <Console name="CONSOLE" target="SYSTEM_OUT">
      <PatternLayout pattern="${layout}"/>
    </Console>
    <RollingFile name="FILE" fileName="${appslogdir}/apps.txt" filePattern="${appsarchivedir}/$${date:yyyy-MM}/apps-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="${layout}">
      <Policies>
       <TimeBasedTriggeringPolicy />
       <SizeBasedTriggeringPolicy size="${rolloversize}"/>
      </Policies>
      <DefaultRolloverStrategy max="24"/>
    </RollingFile>
    <RollingFile name="EMAIL" fileName="${appslogdir}/email.txt" filePattern="${appsarchivedir}/$${date:yyyy-MM}/email-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="${layout}">
      <Policies>
       <TimeBasedTriggeringPolicy />
       <SizeBasedTriggeringPolicy size="${rolloversize}"/>
      </Policies>
      <DefaultRolloverStrategy max="24"/>
    </RollingFile>
    <!-- TOMCAT server appenders -->
    <RollingFile name="CATALINA" fileName="${serverlogdir}/catalina.txt" filePattern="${serverarchivedir}/$${date:yyyy-MM}/catalina-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="${layout}"/>
      <Policies>
       <TimeBasedTriggeringPolicy />
       <SizeBasedTriggeringPolicy size="${rolloversize}"/>
      </Policies>
      <DefaultRolloverStrategy max="24"/>
    </RollingFile>
    <RollingFile name="LOCALHOST" fileName="${serverlogdir}/localhost.txt" filePattern="${serverarchivedir}/$${date:yyyy-MM}/localhost-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="${layout}"/>
      <Policies>
       <TimeBasedTriggeringPolicy />
       <SizeBasedTriggeringPolicy size="${rolloversize}"/>
      </Policies>
      <DefaultRolloverStrategy max="24"/>
    </RollingFile>
    <RollingFile name="MANAGER" fileName="${serverlogdir}/manager.txt" filePattern="${serverarchivedir}/$${date:yyyy-MM}/manager-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="${layout}"/>
      <Policies>
       <TimeBasedTriggeringPolicy />
       <SizeBasedTriggeringPolicy size="${rolloversize}"/>
      </Policies>
      <DefaultRolloverStrategy max="24"/>
    </RollingFile>
    <RollingFile name="HOSTMANAGER" fileName="${serverlogdir}/host-manager.txt" filePattern="${serverarchivedir}/$${date:yyyy-MM}/host-manager-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="${layout}"/>
      <Policies>
       <TimeBasedTriggeringPolicy />
       <SizeBasedTriggeringPolicy size="${rolloversize}"/>
      </Policies>
      <DefaultRolloverStrategy max="24"/>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="info">
    <!-- Root level="error" -->
      <AppenderRef ref="CONSOLE"/>
      <AppenderRef ref="FILE"/>
    </Root>
    <!-- avoid duplicated logs with additivity=false -->
    <Logger name="net.cndc" level="debug" additivity="false">
      <AppenderRef ref="CONSOLE"/>
      <AppenderRef ref="FILE"/>
    </Logger>
    <!-- OPEN SOURCE LIBRARY loggers -->
    <Logger name="org.springframework" level="warn"/>
    <!-- TOMCAT SERVER loggers -->
    <Logger name="org.apache.catalina.core.ContainerBase.[Catalina].[localhost]" level="info" additivity="false">
      <AppenderRef ref="LOCALHOST" />
    </Logger>
    <Logger name="org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]" level="info" additivity="false">
      <AppenderRef ref="MANAGER" />
    </Logger>
    <Logger name="org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]" level="info" additivity="false">
      <AppenderRef ref="HOSTMANAGER" />
    </Logger>
    <Logger name="org.apache.catalina" level="info" additivity="false"> <!-- Might need to tweak this, normally is Root -->
      <AppenderRef ref="CATALINA" />
    </Logger>
  </Loggers>
</Configuration>


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

Reply via email to