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.