blob: bd6cb6b24f988483b801bb1ac1c5a66c85ee0e7c [file] [log] [blame]
= Log4j2 Configuration
:index-group: Configuration
:jbake-date: 2019-07-09
:jbake-type: page
:jbake-status: published
:jbake-tomeepdf:
Title: Log4j2 with TomEE
Out of the box, TomEE is uses a Java-Util-Logging (JUL) based logging system, which is configured using conf/logging.properties.
Occassionally, users may wish to swap over to using Log4j2. These instructions detail how to do this with the latest TomEE versions.
These instructions have been tested with TomEE 7.x and TomEE 8 SNAPSHOT (master) on July 9th, 2019.
== Setup
You'll need to obtain the following jars: log4j-core, log4j-api and log4j-jul. These instructions were tested with the 2.12.0 versions:
https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.12.0/log4j-core-2.12.0.jar
https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.12.0/log4j-api-2.12.0.jar
https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-jul/2.12.0/log4j-jul-2.12.0.jar
Add these to the TomEE bin directory. Add the following to setenv.sh on *nix:
```
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"
LOGGING_CONFIG="-DnoOp"
LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"
CLASSPATH=".:$CATALINA_BASE/bin:$CATALINA_BASE/bin/log4j-core-2.12.0.jar:$CATALINA_BASE/bin/log4j-api-2.12.0.jar:$CATALINA_BASE/bin/log4j-jul-2.12.0.jar"
```
or add the following to setenv.bat on Windows:
```
@echo off
set "JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
set LOGGING_CONFIG=-DnoOpp
set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
set "CLASSPATH=.;%CATALINA_BASE%\bin;%CATALINA_BASE%\bin\log4j-core-2.12.0.jar;%CATALINA_BASE%\bin\log4j-api-2.12.0.jar;%CATALINA_BASE%\bin\log4j-jul-2.12.0.jar"
```
Take care to match the jar filenames if you have downloaded jars for a slightly different version of log4j2.
== Configuration
Add your log4j2.xml config in the `bin` directory. Here's a simple config you can use to help you get started:
```
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="warn" name="catalina" packages="">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
</Console>
<File name="catalina" fileName="${sys:catalina.base}/logs/catalina.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
<Async name="Async">
<AppenderRef ref="catalina" />
</Async>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Async" />
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
```