RRZE – Projekte & Prozesse (P&P)

Das Blog der RRZE Stabsstelle "Projekte & Prozesse"

Content

Log4j Appender mit automatischem Zip-nach-Rotate

English version

Um Pattenplatz bei der Benutzung von Log4j zu sparen wurden zwei alternative Appender implementiert die neben der üblichen Rotation der Logdatei, diese auch gleich mittels zip komprimiert.

Die beiden Appender Klassen sind entsprechend ihren Pendants auf die Namen DailyRollingZipAppender und RollingZipAppender getauft und im repo unter ppsa-log4j-zip zu finden.
Beide Klassen erweitern die ursprünglichen Appender Implementierungen und können deshalb 1:1 ohne zusätzlichen Konfigurationsaufwand ausgetauscht werden.

Um eine Logdatei beim rotieren automatisch zu zippen müssten zum Beispiel folgende Anpassungen vorgenommen werden:

     <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">

ersetzen durch

     <appender name="FILE" class="de.rrze.ppsa.log.DailyRollingZipAppender">

Außerdem muss die ppsa-log4j-zip-0.0.1.jar im Classpath liegen.

Die Implementierung wurde inspiriert von einem Blogbeitrag auf ralfhaug.de.

Log4j appender with automatic zip-after-rotate

In order to save precious disc space when using Log4j, we developed to alternative appender implementations with zip functionality. In addition to the usual rotation of the log files, these appenders also compress the rotated logs using the zip algorithm.

The two appender classes are named after their respective counterparts: DailyRollingZipAppender and RollingZipAppender. They are available in our repo under ppsa-log4j-zip.
Both classes extend the oiginal appender implementations and can be used as plug-in replacements without any additional configuration.

An example configuration to automatically zip a logfile after rotate would be done something like this:

     <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">

must just be replaced with

     <appender name="FILE" class="de.rrze.ppsa.log.DailyRollingZipAppender">

Additionally the ppsa-log4j-zip-0.0.1.jar has to be in the classpath.

The implementation was inspired by this blog entry on ralfhaug.de.