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_OUT ellerSYSTEM_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 ConsoleAppender
att 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 FileAppender
det 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 filePattern
anger 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
GO TO FULL VERSION