Updating log4j 1.x to 2.x

I’ve used┬áLog4J 1.x for ages, and not even realized that the 1.x code line is not maintained any more, it seems all the activity is on 2.x as the latest maintained version of the framework.

To move from 1.x to 2.x, there’s a few changes:

If you’re using Maven for your dependencies, replace

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>

with

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0.2</version>
</dependency>

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0.2</version>
</dependency>

The API has changed from:

org.apache.log4j.Logger

and

Logger.getLogger()

 

to

org.apache.logging.log4j.Logger

and

org.apache.logging.log4j.LogManager.getLogger()

 

Sample xml config – use filename log4j2.xml instead of log4j.xml (or log4j.properties):

<?xml version=”1.0″ encoding=”UTF-8″?>
<Configuration>
<Appenders>
<Console name=”STDOUT” target=”SYSTEM_OUT”>
<PatternLayout pattern=”%C – %m%n”/>
</Console>
</Appenders>
<Loggers>
<Logger name=”example.logger.name” level=”debug”/>
<Root level=”debug”>
<AppenderRef ref=”STDOUT”/>
</Root>
</Loggers>
</Configuration>

Additional useful info here.