Liste over bilag
Loggeren giver dig mulighed for at gemme data til flere filer på én gang. Sådanne outputdatastrømme kaldes appenders (fra tilføj). Der er en del standardbilag, så vi vil kun dække de mest populære:
Vedhæng | Beskrivelse | |
---|---|---|
1 | Konsol | Udskriver data til konsollen |
2 | fil | Udsender data til en fil |
3 | DailyRollingFile | Udsender data til en fil, filen overskrives cyklisk |
4 | Asynkron | Giver dig mulighed for at skrive data til en anden appender asynkront |
5 | Stikkontakt | Skriver data til en bestemt socket |
6 | JDBC | Skriver beskeder til databasen ved hjælp af JDBC-protokollen |
7 | JPA | Skriver beskeder til databasen ved hjælp af JPA-protokollen |
8 | HTTP | Sender hændelser via HTTP-protokol til en ekstern server |
9 | SMTP | Gemmer beskeder i en buffer og sender dem derefter som en e-mail |
God dokumentation for alle bilag er på deres officielle hjemmeside
Og nedenfor vil vi overveje de mest populære og enkle af dem.
ConsoleAppender
Den enkleste appender erConsoleApender
. Som du måske har gættet, skriver han blot sine beskeder til konsollen. Det har flere interessante parametre for os:
Egenskaber | ||
---|---|---|
1 | navn | Tillægsnavn |
2 | filter | Giver dig mulighed for at filtrere nogle beskeder |
3 | layout | Angiver formateringen af meddelelser, når de udlæses |
4 | mål | Angiver hvor der skal skrives: SYTEM_OUT ellerSYSTEM_ERR |
Det er meget nemt at konfigurere 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 nyttige appender erFileAppender
. I modsætning til ConsoleAppender
han skriver sine beskeder til en fil. Hvilket er meget nyttigt, når din applikation kører et sted på serveren. Det har en masse parametre, pga den skal kunne skrive filer på forskellige operativsystemer.
Men vi vil kun overveje de mest populære af dem.
1 | navn | Angiver navnet på tillægget |
2 | filter | Giver dig mulighed for at filtrere nogle beskeder |
3 | layout | Angiver formateringen af meddelelser, når de udlæses |
4 | filnavn | Angiver navnet på filen, hvor der skal skrives beskeder |
5 | Tilføj | Hvis true , så vil beskederne blive tilføjet til den gamle log, hvis false - logfilen vil blive genskabt hver gang programmet startes. |
6 | bufferstørrelse | Indstiller bufferstørrelsen i bytes |
7 | øjeblikkelig Skylning | Hvis true , så skrives hver besked faktisk til disken med det samme (uden en buffer). Loggen begynder at arbejde langsomt, men det sparer dig for at miste data, når programmet går ned. |
Du ved allerede, hvordan du arbejder godt med filer, så disse indstillinger er ikke noget nyt for dig. Konfiguration af en sådan logger er endnu nemmere end 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ære appender erRollingFileAppender
. I modsætning til FileAppender
det giver det dig mulighed for at opdele loggen i mange små filer. Dette er meget vigtigt for store træstammer. Derudover giver det dig mulighed for at sætte regler for, hvad du skal gøre med gamle filer, efter at nye er begyndt at blive skrevet.
Og denne appender har næsten hundrede forskellige indstillinger. Du kan finde ud af mere om dem på linket .
Overvej de mest populære egenskaber ved denne appender:
Egenskaber | ||
---|---|---|
1 | navn | Angiver navnet på tillægget |
2 | filter | Giver dig mulighed for at filtrere nogle beskeder |
3 | layout | Angiver formateringen af meddelelser, når de udlæses |
4 | filnavn | Angiver navnet på filen, hvor der skal skrives beskeder |
5 | filmønster | Angiver et navngivningsmønster for arkivfiler, der ikke længere skrives |
6 | politik | Angiver betingelsen for, hvornår filen skal begynde at blive overskrevet |
7 | strategi | Beskriver hvad man skal gøre med gamle filer: arkiv, historik for hvor mange dage der skal opbevares osv. |
Her er et godt eksempel:
<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>
Parameteren filePattern
angiver en skabelon til arkiver af gamle logfiler. Der er også to, når de udløses, vil en ny fil blive skrevet:
TimeBasedTriggeringPolicy
– vil fungere, hvis en ny dag starter (den nuværende dato ændres)SizeBasedTriggeringPolicy
– vil fungere, hvis filstørrelsen når 250 MB
GO TO FULL VERSION