CodeGym/Java Course/Modulo 3/Appendici in Log4j

Appendici in Log4j

Disponibile

Elenco degli appendici

Il logger consente di salvare i dati in più file contemporaneamente. Tali flussi di dati di output sono chiamati appender (da append). Ci sono alcuni appender standard, quindi tratteremo solo quelli più popolari:

Appenders Descrizione
1 Consolle Stampa i dati sulla console
2 File Emette i dati in un file
3 DailyRollingFile Emette i dati in un file, il file viene sovrascritto ciclicamente
4 asincrono Consente di scrivere i dati in un altro appender in modo asincrono
5 PRESA Scrive i dati in un socket specifico
6 JDB Scrive messaggi nel database utilizzando il protocollo JDBC
7 APP Scrive messaggi nel database utilizzando il protocollo JPA
8 http Invia eventi tramite protocollo HTTP a un server remoto
9 SMTP Memorizza i messaggi in un buffer, quindi li invia come e-mail

Una buona documentazione per tutti gli appenders è sul loro sito ufficiale

E di seguito considereremo il più popolare e semplice di loro.

ConsoleAppender

L'appender più semplice èConsoleApender . Come avrai intuito, scrive semplicemente i suoi messaggi alla console. Ha diversi parametri interessanti per noi:

Attributi
1 nome Nome appendice
2 filtro Consente di filtrare alcuni messaggi
3 disposizione Specifica la formattazione dei messaggi durante l'output
4 bersaglio Specifica dove scrivere: SYTEM_OUToSYSTEM_ERR

È molto facile configurarlo:

<?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

L'appender più utile èFileAppender . A differenza ConsoleAppenderdi lui scrive i suoi messaggi su un file. Il che è molto utile quando la tua applicazione è in esecuzione da qualche parte sul server. Ha molti parametri, perché deve essere in grado di scrivere file su diversi sistemi operativi.

Ma considereremo solo il più popolare di loro.

1 nome Specifica il nome dell'appender
2 filtro Consente di filtrare alcuni messaggi
3 disposizione Specifica la formattazione dei messaggi durante l'output
4 nome del file Specifica il nome del file dove scrivere i messaggi
5 aggiungere Se true, i messaggi verranno aggiunti al vecchio registro, se false- il file di registro verrà ricreato ogni volta che l'applicazione viene avviata.
6 dimensione buffer Imposta la dimensione del buffer in byte
7 immediateFlash Se true, ogni messaggio viene effettivamente scritto su disco immediatamente (senza buffer). Il registro inizia a funzionare lentamente, ma questo ti evita di perdere dati quando il programma si arresta in modo anomalo.

Sai già come lavorare bene con i file, quindi queste impostazioni non sono una novità per te. La configurazione di un tale logger è ancora più semplice di un logger della console:

<?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

L'appender più popolare èRollingFileAppender . A differenza di FileAppenderesso, ti consente di suddividere il registro in tanti piccoli file. Questo è molto importante per i registri di grandi dimensioni. Inoltre, ti consente di impostare regole su cosa fare con i vecchi file dopo che è iniziata la scrittura di quelli nuovi.

E questo appender ha quasi un centinaio di impostazioni diverse. Puoi saperne di più su di loro al link .

Considera gli attributi più popolari di questo appender:

Attributi
1 nome Specifica il nome dell'appender
2 filtro Consente di filtrare alcuni messaggi
3 disposizione Specifica la formattazione dei messaggi durante l'output
4 nome del file Specifica il nome del file dove scrivere i messaggi
5 filePattern Specifica un modello di denominazione per i file di archivio che non vengono più scritti
6 politica Specifica la condizione in cui il file dovrebbe iniziare a essere sovrascritto
7 strategia Descrive cosa fare con i vecchi file: archivio, cronologia per quanti giorni conservare, ecc.

Ecco un buon esempio:

<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>

Il parametro filePatternspecifica un modello per gli archivi dei vecchi log. Ce ne sono anche due, quando attivato, verrà scritto un nuovo file:

  • TimeBasedTriggeringPolicy– funzionerà se inizia un nuovo giorno (la data corrente cambia)
  • SizeBasedTriggeringPolicy– funzionerà se la dimensione del file raggiunge i 250 MB
Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti