Kapitel 9. Logging mit Log4j2

Alle Validierungsergebnisse einer PDF-Validierung werden intern an das Logging-System 'Log4j Version 2' übergeben. Diese vielleicht aufwendig erscheinende Implementierung ermöglicht es, weitere Empfänger auf einfache Weise hinzuzufügen. Weitere Empfänger können nicht nur Dateien sein, sondern auch Log-Management-Systeme wie beispielsweise Graylog2 und LogStash.

Aktuelle Konfiguration

Die Konfigurationsdatei log4j2.xml befindet sich im Verzeichnis PDFUNIT_MONITOR_HOME/conf.

Im Auslieferungszustand ist Log4j2 so konfiguriert, dass neben der Benutzung des internen Appenders 'PDFUnitMonitorAppender' auch ein File-Appender aktiviert ist. Dieser schreibt alle Validierungsergebnisse im XML-Format in die Datei PDFUNIT_MONITOR_HOME/log/pdfunit-monitor.log.

<Configuration monitorInterval="10">

  <Appenders>
    <File name="XmlFileAppender" 
          fileName="./log/pdfunit-monitor.log" 
          append="true"
          bufferedIO="false"
          bufferSize="100"
          immediateFlush="true"
    >
      <XMLLayout complete="true" charset="UTF-8" compact="false"/>
    </File>
    <Console name="ConsoleAppender" target="SYSTEM_OUT">
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
    </Console>
    <Socket name="PDFUnitMonitorAppender" host="localHost" port="4445">
      <SerializedLayout />
    </Socket>
  </Appenders>
  
  <Loggers>
    <Logger name="PDFConstraints" level="all" additivity="false">
      <AppenderRef ref="XmlFileAppender"/>
      <AppenderRef ref="PDFUnitMonitorAppender"/>
<!--       <AppenderRef ref="ConsoleAppender"/> -->
    </Logger>
    <Root level="off">
      <AppenderRef ref="ConsoleAppender"/>
    </Root>
  </Loggers>
  
</Configuration>

In der Log-Konfiguration kann ein Error-Level als Filter angegeben werden. Mit der Auslieferung steht er für den Logger PDFConstraints auf all. Es ist nicht nötig, die Meldungen schon bei ihrer Enstehung herauszufiltern. Die Oberfläche bietet einen Error-Level-Filter an, um die Anzeige später einzuschränken.

Interne Nutzung, Port neu konfigurieren

Der Logging-Appender 'PDFUnitMonitorAppender' schickt seine Prüfergebnisse über Sockets an die Oberfläche. Dafür wird Port 4445 verwendet. Wenn dieser Port von anderen Anwendungen belegt ist, muss er für den Monitor in den Konfigurationsdateien pdfunit-monitor.config und log4j2.xml auf einen anderen Wert gesetzt werden.

Informationen zu Log4j2

Weitere Informationen zu Log4j2 entnehmen Sie bitte den Online-Dokumentationen: