Liste der Appender

Mit dem Logger können Sie Daten gleichzeitig in mehreren Dateien speichern. Solche Ausgabedatenströme werden Appender (von append) genannt. Es gibt eine ganze Reihe von Standard-Appendern, daher werden wir nur die beliebtesten behandeln:

Anhänge Beschreibung
1 Konsole Druckt Daten auf der Konsole
2 Datei Gibt Daten in eine Datei aus
3 DailyRollingFile Gibt Daten in eine Datei aus, die Datei wird zyklisch überschrieben
4 asynchron Ermöglicht das asynchrone Schreiben von Daten in einen anderen Appender
5 Steckdose Schreibt Daten in einen bestimmten Socket
6 JDBC Schreibt Nachrichten mithilfe des JDBC-Protokolls in die Datenbank
7 JPA Schreibt Nachrichten mithilfe des JPA-Protokolls in die Datenbank
8 http Sendet Ereignisse über das HTTP-Protokoll an einen Remote-Server
9 SMTP Speichert Nachrichten in einem Puffer und versendet sie dann als E-Mail

Eine gute Dokumentation für alle Appender finden Sie auf der offiziellen Website

Und im Folgenden betrachten wir die beliebtesten und einfachsten davon.

ConsoleAppender

Der einfachste Appender istConsoleApender . Wie Sie vielleicht schon erraten haben, schreibt er seine Nachrichten einfach an die Konsole. Es hat mehrere für uns interessante Parameter:

Attribute
1 Name Appender-Name
2 Filter Ermöglicht das Filtern einiger Nachrichten
3 Layout Gibt die Formatierung von Nachrichten bei der Ausgabe an
4 Ziel Gibt an, wo geschrieben werden soll: SYTEM_OUToderSYSTEM_ERR

Die Konfiguration ist ganz einfach:


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
        <PatternLayout pattern="%m%n"/>
        </Console>
    </Appenders>
      <Loggers>
        <Root level="error">
        <AppenderRef ref="STDOUT"/>
        </Root>
    </Loggers>
    </Configuration>

FileAppender

Der nützlichste Appender istFileAppender . Im Gegensatz dazu ConsoleAppenderschreibt er seine Nachrichten in eine Datei. Dies ist sehr nützlich, wenn Ihre Anwendung irgendwo auf dem Server ausgeführt wird. Es hat viele Parameter, weil Es muss in der Lage sein, Dateien auf verschiedenen Betriebssystemen zu schreiben.

Aber wir werden nur die beliebtesten davon betrachten.

1 Name Gibt den Namen des Appenders an
2 Filter Ermöglicht das Filtern einiger Nachrichten
3 Layout Gibt die Formatierung von Nachrichten bei der Ausgabe an
4 Dateinamen Gibt den Namen der Datei an, in die Nachrichten geschrieben werden sollen
5 anhängen Wenn true, werden die Meldungen zum alten Protokoll hinzugefügt, wenn false- wird die Protokolldatei bei jedem Start der Anwendung neu erstellt.
6 Puffergröße Legt die Puffergröße in Bytes fest
7 sofortSpülung Wenn true, dann wird jede Nachricht tatsächlich sofort (ohne Puffer) auf die Festplatte geschrieben. Das Protokoll beginnt langsam zu arbeiten, aber das erspart Ihnen den Verlust von Daten, wenn das Programm abstürzt.

Da Sie bereits wissen, wie man gut mit Dateien arbeitet, sind diese Einstellungen für Sie nichts Neues. Die Konfiguration eines solchen Loggers ist noch einfacher als die eines Konsolen-Loggers:


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <File name="MyFile" fileName="logs/app.log">
        <PatternLayout>
            <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
        </PatternLayout>
        </File>
    </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
    </Configuration>

RollingFileAppender

Der beliebteste Appender istRollingFileAppender . Im Gegensatz FileAppenderdazu können Sie das Protokoll in viele kleine Dateien aufteilen. Dies ist bei großen Protokollen sehr wichtig. Darüber hinaus können Sie Regeln festlegen, was mit alten Dateien geschehen soll, nachdem mit dem Schreiben neuer Dateien begonnen wurde.

Und dieser Appender hat fast hundert verschiedene Einstellungen. Mehr dazu erfahren Sie unter dem Link .

Betrachten Sie die beliebtesten Attribute dieses Appenders:

Attribute
1 Name Gibt den Namen des Appenders an
2 Filter Ermöglicht das Filtern einiger Nachrichten
3 Layout Gibt die Formatierung von Nachrichten bei der Ausgabe an
4 Dateinamen Gibt den Namen der Datei an, in die Nachrichten geschrieben werden sollen
5 Dateimuster Gibt ein Benennungsmuster für Archivdateien an, die nicht mehr geschrieben werden
6 Politik Gibt die Bedingung an, wann mit dem Überschreiben der Datei begonnen werden soll
7 Strategie Beschreibt, was mit alten Dateien zu tun ist: Archiv, Verlauf für wie viele Tage aufzubewahren usw.

Hier ist ein gutes Beispiel:


<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
    <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
    </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
    <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

Der Parameter filePatterngibt eine Vorlage für Archive alter Protokolle an. Es gibt auch zwei Möglichkeiten, bei Auslösung wird eine neue Datei geschrieben:

  • TimeBasedTriggeringPolicy– funktioniert, wenn ein neuer Tag beginnt (das aktuelle Datum ändert sich)
  • SizeBasedTriggeringPolicy– funktioniert, wenn die Dateigröße 250 MB erreicht