I am working on a application that was using log4j
until now and I want to migrate to log4j2
. I am a new to using log4j 2
, referring the log4j 1.x migration guide
but for some parts I am not clear about how the configuration in my log4j.xml
should be.
Current log4j.xml
file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<!-- Appender for logging to console output -->
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="debug" />
<layout class="org.apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="[%d{dd-MMM-yyyy HH:mm:ss:SSS}][%5p][%c{1}:%L]- %m%n" />
</layout>
</appender>
<!-- Appender for logging audit messages to the file -->
<appender name="auditLoggerAppender" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="Threshold" value="debug" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="C:/logs/Filename.log" />
<param name="FileNamePattern" value="C:/logs/Filename2.%d.log" />
<param name="MaxHistory" value="30" />
</rollingPolicy>
<layout class="org.apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="[%d{dd-MMM-yyyy HH:mm:ss:SSS}][%5p][%c{1}:%L]- %m%n" />
</layout>
</appender>
<!-- Logger for audit messages -->
<logger name="auditLogger" additivity="false">
<appender-ref ref="applicationLoggerAppender" />
</logger>
</log4j:configuration>
what configuration changes need to be made for <param>
, <layout>
, the <RollinFileAppender>
part and <logger name="auditLogger" additivity="false"> <appender-ref ref="applicationLoggerAppender" /> </logger>
for it to work with log4j 2 ?
In Log4j2 basically two aspects change in the XML configuration:
RollingFileAppender
(cf. javadoc) you'll use RollingFile
instead of org.apache.logging.log4j.core.appender.RollingFileAppender
,The XML version of your appender (cf. Configuration File Syntax) will be:
<RollingFile name="auditLoggerAppender"
fileName="C:\logs\Filename.log"
filePattern="C:\logs\Filename2.%d.log">
<PatternLayout pattern="[%d{dd-MMM-yyyy HH:mm:ss:SSS}][%5p][%c{1}:%L]- %m%n"/>
<ThresholdFilter level="DEBUG"/>
<TimeBasedTriggeringPolicy/>
<DefaultRolloverStrategy max="30"/>
</RollingFile>
Loggers are configured in a similar way:
<Logger name="auditLogger" additivity="false">
<AppenderRef ref="auditLoggerAppender" />
</Logger>
You can find all configuration parameters in:
RollingFile
or Logger
for example).