Re: Configuring Tomcat to use log4j2 - not working, probably a trivial error in log4j2.xml
Bruno Melloni <[email protected]>
| Newsgroups | gmane.comp.jakarta.log4j.user |
|---|---|
| Message-ID | <[email protected]> |
Success!
The issue turned out to be that placing the log4j2 jars and
log4j2-tomcat.xml in the tomcat/lib folder no longer works.
The solution:
* Followed the official instructions to the letter
(https://logging.apache.org/log4j/2.x/log4j-appserver/index.html)
* Used this canned log4j2-tomcat.xml file that replicates the original
tomcat files but using log4j
(https://gist.github.com/bmaupin/475a0cd6e8b374d876f5085846761fb6)
* Could not edit setenv.sh in Windows (does not exist), so instead I
added the following (knowingly ugly and inflexible code - for now)
to catalina.bat:
* set
"CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\log4j2\lib\log4j-api-2.17.1.jar"
* set
"CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\log4j2\lib\log4j-core-2.17.1.jar"
* set
"CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\log4j2\lib\log4j-appserver-2.17.1.jar"
* set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\log4j2\conf"
It now puts all of Tomcat's logging in the files, with virtually nothing
in the console.
I hope the solution (or an improved version of this) helps others.
bruno
On 1/6/2022 5:34 PM, Ralph Goers wrote:
> I haven’t checked Tomcat 9, but the log4j-appserver module was created to hook into Tomcat 8.5 and up. I just not sure if Tomcat changed their logging mechanism yet again.
>
> Ralph
>
>> On Jan 6, 2022, at 2:43 PM, Bruno Melloni<[email protected]> wrote:
>>
>> 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:[email protected]
>> For additional commands, e-mail:[email protected]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:[email protected]
> For additional commands, e-mail:[email protected]
>