CodeGym/Java kurs/Modul 3/Bilagor i Log4j

Bilagor i Log4j

Nivå, Lektion
Tillgängliga

Lista över bilagor

Loggern låter dig spara data till flera filer samtidigt. Sådana utdataströmmar kallas appendrar (från append). Det finns en hel del standardbihang, så vi kommer bara att täcka de mest populära:

Bilagor Beskrivning
1 Trösta Skriver ut data till konsolen
2 fil Matar ut data till en fil
3 DailyRollingFile Matar ut data till en fil, filen skrivs över cykliskt
4 Asynkron Låter dig skriva data till en annan appendator asynkront
5 Uttag Skriver data till ett specifikt uttag
6 JDBC Skriver meddelanden till databasen med JDBC-protokollet
7 JPA Skriver meddelanden till databasen med JPA-protokollet
8 HTTP Skickar händelser via HTTP-protokoll till en fjärrserver
9 SMTP Lagrar meddelanden i en buffert och skickar dem sedan som ett e-postmeddelande

Bra dokumentation för alla bilagor finns på deras officiella hemsida

Och nedan kommer vi att överväga de mest populära och enkla av dem.

ConsoleAppender

Det enklaste bihanget ärConsoleApender . Som du kanske har gissat skriver han helt enkelt sina meddelanden till konsolen. Den har flera intressanta parametrar för oss:

Attribut
1 namn Bilaga namn
2 filtrera Låter dig filtrera vissa meddelanden
3 layout Anger formateringen av meddelanden vid utmatning
4 mål Anger var du ska skriva: SYTEM_OUTellerSYSTEM_ERR

Det är väldigt enkelt att konfigurera det:

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

Den mest användbara appendaren ärFileAppender . Till skillnad från ConsoleAppenderatt han skriver sina meddelanden till en fil. Vilket är mycket användbart när din applikation körs någonstans på servern. Den har många parametrar, eftersom den måste kunna skriva filer på olika operativsystem.

Men vi kommer bara att överväga de mest populära av dem.

1 namn Anger namnet på tillägget
2 filtrera Låter dig filtrera vissa meddelanden
3 layout Anger formateringen av meddelanden vid utmatning
4 filnamn Anger namnet på filen där meddelanden ska skrivas
5 bifoga Om true, då kommer meddelandena att läggas till i den gamla loggen, om false- loggfilen kommer att återskapas varje gång programmet startas.
6 buffertstorlek Ställer in buffertstorleken i byte
7 omedelbar spolning Om true, så skrivs varje meddelande faktiskt till disken omedelbart (utan en buffert). Loggen börjar fungera långsamt, men detta sparar dig från att förlora data när programmet kraschar.

Du vet redan hur man fungerar bra med filer, så dessa inställningar är inget nytt för dig. Att konfigurera en sådan logger är ännu enklare än en konsollogger:

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

Den mest populära appendaren ärRollingFileAppender . Till skillnad från FileAppenderdet låter det dig dela upp loggen i många små filer. Detta är mycket viktigt för stora stockar. Dessutom låter den dig sätta regler för vad du ska göra med gamla filer efter att nya har börjat skrivas.

Och denna appender har nästan hundra olika inställningar. Du kan ta reda på mer om dem på länken .

Tänk på de mest populära egenskaperna hos denna appendator:

Attribut
1 namn Anger namnet på tillägget
2 filtrera Låter dig filtrera vissa meddelanden
3 layout Anger formateringen av meddelanden vid utmatning
4 filnamn Anger namnet på filen där meddelanden ska skrivas
5 filmönster Anger ett namnmönster för arkivfiler som inte längre skrivs
6 politik Anger villkoret när filen ska börja skrivas över
7 strategi Beskriver vad man ska göra med gamla filer: arkiv, historik för hur många dagar man ska behålla osv.

Här är ett bra exempel:

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

Parametern filePatternanger en mall för arkiv av gamla loggar. Det finns också två, när den utlöses kommer en ny fil att skrivas:

  • TimeBasedTriggeringPolicy– kommer att fungera om en ny dag börjar (det nuvarande datumet ändras)
  • SizeBasedTriggeringPolicy– fungerar om filstorleken når 250 MB
Kommentarer
  • Populär
  • Ny
  • Gammal
Du måste vara inloggad för att lämna en kommentar
Den här sidan har inga kommentarer än