Apache has announced End of Life for Log4J 1.x in August 2015, ending support. Users are encouraged to upgrade to 2.x releases.
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.
Minimal log4j.properties file
Here’s a minimal log4j properties file defining a console appender and pattern formatter:
log4j.rootLogger=DEBUG, console #console appender log4j.appender.console=org.apache.log4j.ConsoleAppender #define patternlayour for console appender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n