Migrationshilfe Log4j 1.x / Log4j 2

Neben Performance-Verbesserungen und der Erweiterung des Funktionsumfangs hat Apache mit Log4j2 sein Konfigurationsmodel  etwas abgeändert. Die laut Apache “vereinfachte” Konfiguration, hat zur Folge, dass bei einem Update von Log4j 1.x auf Log4j 2 eine neue Konfigurationsdatei geschrieben werden muss. Für Log4j 1.x-Benutzer wird eine Bridge bereitgestellt. Damit können die alten Interfaces weiterverwendet werden, die Methodenaufrufe werden aber an das neue API geleitet. Neben dem Hinzufügen der neuen Bibliotheken muss der Entwickler nur noch die Konfigurationsdatei neu schreiben. Die Konfigurationsdateien ähneln sich zwar, dennoch gibt es einige Unterschiede.
Dieser Blog-Eintrag soll als Migrationshilfe dienen. Dazu wird der Log4j 1.x-Konfiguration eine Log4j 2 Konfiguration gegenübergestellt.

Log4j 1.x Konfigurationsdatei

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<!DOCTYPE log4j:configuration SYSTEM “log4j.dtd” >
<log4j:configuration xmlns:log4j=’http://jakarta.apache.org/log4j/’>

<appender name=”ConsoleAppender” class=”org.apache.log4j.ConsoleAppender”>
<layout class=”org.apache.log4j.PatternLayout”>
<param name=”ConversionPattern”
value=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}] (%C): %m%n” />
</layout>
</appender>
<appender name=”FileAppenderDebug” class=”org.apache.log4j.RollingFileAppender”>
<param name=”File” value=”./logs/fixUndFoxi-debug.log” />
<param name=”MaxFileSize” value=”10000KB” />
<param name=”MaxBackupIndex” value=”10″ />
<layout class=”org.apache.log4j.PatternLayout”>
<param name=”ConversionPattern”
value=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}] (%C): %m%n” />
</layout>
<filter class=”org.apache.log4j.varia.LevelRangeFilter”>
<param name=”levelMin” value=”TRACE” />
<param name=”levelMax” value=”INFO” />
</filter>
</appender>
<appender name=”FileAppenderError” class=”org.apache.log4j.RollingFileAppender”>
<param name=”File” value=”./logs/fixUndFoxi-error.log” />
<param name=”MaxFileSize” value=”5000KB” />
<param name=”MaxBackupIndex” value=”10″ />
<layout class=”org.apache.log4j.PatternLayout”>
<param name=”ConversionPattern”
value=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}] (%C): %m%n” />
</layout>
<filter class=”org.apache.log4j.varia.LevelRangeFilter”>
<param name=”levelMin” value=”WARN” />
<param name=”levelMax” value=”FATAL” />
</filter>
</appender>

<appender name=”FileAppenderActions” class=”org.apache.log4j.RollingFileAppender”>
<param name=”File” value=”./logs/fixUndFoxi-actions.log” />
<param name=”MaxFileSize” value=”10000KB” />
<param name=”MaxBackupIndex” value=”1″ />
<layout class=”org.apache.log4j.PatternLayout”>
<param name=”ConversionPattern”
value=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}]: %m%n” />
</layout>
</appender>

<logger name=”actions” additivity=”false”>
<level value=”ALL” />
<appender-ref ref=”FileAppenderActions” />
</logger>
<logger name=”org.hibernate” additivity=”false”>
<level value=”ERROR” />
<appender-ref ref=”ConsoleAppender” />
<appender-ref ref=”FileAppenderError” />
</logger>

<logger name=”de.triona.fixUndFoxi” additivity=”false”>
<level value=”DEBUG” />
<appender-ref ref=”ConsoleAppender” />
<appender-ref ref=”FileAppenderDebug” />
<appender-ref ref=”FileAppenderError” />
</logger>

<!– The root logger –>
<root>
<level value=”INFO” />
<appender-ref ref=”ConsoleAppender” />
<appender-ref ref=”FileAppenderDebug” />
<appender-ref ref=”FileAppenderError” />
</root>

</log4j:configuration>

 

Log4j 2 Konfigurationsdatei

<?xml version=”1.0″ encoding=”UTF-8″?>
<Configuration>
<Appenders>
<Console name=”ConsoleAppender” target=”SYSTEM_OUT”>
<PatternLayout
pattern=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}] (%C): %m%n” />
</Console>
<RollingFile name=”FileAppenderDebug” fileName=”./logs/fixUndFoxi-debug.log”
filePattern=”logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz”>
<ThresholdFilter level=”WARN” onMatch=”DENY” onMismatch=”NEUTRAL”/>
<PatternLayout
pattern=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}] (%C): %m%n” />
<Policies>
<SizeBasedTriggeringPolicy size=”10 MB” />
</Policies>
<DefaultRolloverStrategy max=”10″ />
</RollingFile>
<RollingFile name=”FileAppenderError” fileName=”./logs/fixUndFoxi-error.log”
filePattern=”logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz”>
<ThresholdFilter level=”WARN” onMatch=”ACCEPT” onMismatch=”DENY” />
<PatternLayout
pattern=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}] (%C): %m%n” />
<Policies>
<SizeBasedTriggeringPolicy size=”5 MB” />
</Policies>
<DefaultRolloverStrategy max=”10″ />
</RollingFile>
<RollingFile name=”FileAppenderActions” fileName=”./logs/fixUndFoxi-actions.log”
filePattern=”logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz”>
<PatternLayout
pattern=”%-5p %X{userName}%X{errorId}  [%d{dd.MM.yyyy – HH:mm:ss}]: %m%n” />
<Policies>
<SizeBasedTriggeringPolicy size=”10 MB” />
</Policies>
<DefaultRolloverStrategy max=”10″ />
</RollingFile>
</Appenders>
<Loggers>
<Logger name=”actions” level=”all” additivity=”false”>
<AppenderRef ref=”FileAppenderActions” />
</Logger>

<Logger name=”org.hibernate” level=”error” additivity=”false”>
<AppenderRef ref=”ConsoleAppender” />
<AppenderRef ref=”FileAppenderError” />
</Logger>

<Logger name=”de.triona.fixUndFoxi” level=”debug”
additivity=”false”>
<AppenderRef ref=”ConsoleAppender” />
<AppenderRef ref=”FileAppenderDebug” />
<AppenderRef ref=”FileAppenderError” />
</Logger>
<Root level=”debug”>
<AppenderRef ref=”ConsoleAppender” />
<AppenderRef ref=”FileAppenderDebug” />
<AppenderRef ref=”FileAppenderError” />
</Root>
</Loggers>
</Configuration>