Liste over vedlegg
Loggeren lar deg lagre data til flere filer samtidig. Slike utdatastrømmer kalles vedlegg (fra vedlegg). Det er ganske mange standardvedlegg, så vi vil bare dekke de mest populære:
Vedlegg | Beskrivelse | |
---|---|---|
1 | Konsoll | Skriver ut data til konsollen |
2 | fil | Sender ut data til en fil |
3 | DailyRollingFile | Sender ut data til en fil, filen overskrives syklisk |
4 | Asynkron | Lar deg skrive data til en annen vedlegg asynkront |
5 | Stikkontakt | Skriver data til en bestemt kontakt |
6 | JDBC | Skriver meldinger til databasen ved hjelp av JDBC-protokollen |
7 | JPA | Skriver meldinger til databasen ved hjelp av JPA-protokollen |
8 | HTTP | Sender hendelser via HTTP-protokoll til en ekstern server |
9 | SMTP | Lagrer meldinger i en buffer, og sender dem deretter som en e-post |
God dokumentasjon for alle vedlegg er på deres offisielle nettside
Og nedenfor vil vi vurdere de mest populære og enkle av dem.
ConsoleAppender
Den enkleste vedlegget erConsoleApender
. Som du kanskje har gjettet, skriver han ganske enkelt meldingene sine til konsollen. Den har flere interessante parametere for oss:
Attributter | ||
---|---|---|
1 | Navn | Vedleggsnavn |
2 | filter | Lar deg filtrere noen meldinger |
3 | oppsett | Spesifiserer formateringen av meldinger når de sendes ut |
4 | mål | Angir hvor du skal skrive: SYTEM_OUT ellerSYSTEM_ERR |
Det er veldig enkelt å 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
Det mest nyttige vedlegget erFileAppender
. I motsetning til at ConsoleAppender
han skriver meldingene sine til en fil. Noe som er veldig nyttig når applikasjonen din kjører et sted på serveren. Den har mange parametere, fordi den må kunne skrive filer på forskjellige operativsystemer.
Men vi vil bare vurdere de mest populære av dem.
1 | Navn | Angir navnet på vedlegget |
2 | filter | Lar deg filtrere noen meldinger |
3 | oppsett | Spesifiserer formateringen av meldinger når de sendes ut |
4 | filnavn | Angir navnet på filen hvor meldinger skal skrives |
5 | legge til | Hvis true , så vil meldingene bli lagt til i den gamle loggen, hvis false - loggfilen vil bli gjenskapt hver gang programmet startes. |
6 | buffer størrelse | Angir bufferstørrelsen i byte |
7 | umiddelbar spyling | Hvis true , blir hver melding faktisk skrevet til disk umiddelbart (uten buffer). Loggen begynner å fungere sakte, men dette sparer deg fra å miste data når programmet krasjer. |
Du vet allerede hvordan du fungerer godt med filer, så disse innstillingene er ikke noe nytt for deg. Å konfigurere en slik logger er enda enklere enn en konsolllogger:
<?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
Det mest populære vedlegget erRollingFileAppender
. I motsetning til FileAppender
det lar den deg dele loggen i mange små filer. Dette er veldig viktig for store stokker. I tillegg lar den deg sette regler for hva du skal gjøre med gamle filer etter at nye har begynt å skrives.
Og dette vedlegget har nesten hundre forskjellige innstillinger. Du kan finne ut mer om dem på lenken .
Vurder de mest populære egenskapene til denne vedlegget:
Attributter | ||
---|---|---|
1 | Navn | Angir navnet på vedlegget |
2 | filter | Lar deg filtrere noen meldinger |
3 | oppsett | Spesifiserer formateringen av meldinger når de sendes ut |
4 | filnavn | Angir navnet på filen hvor meldinger skal skrives |
5 | filmønster | Angir et navnemønster for arkivfiler som ikke lenger skrives |
6 | Politikk | Angir betingelsen når filen skal begynne å bli overskrevet |
7 | strategi | Beskriver hva du skal gjøre med gamle filer: arkiv, historikk for hvor mange dager du skal beholde 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
spesifiserer en mal for arkiver av gamle logger. Det er også to, når de utløses, vil en ny fil bli skrevet:
TimeBasedTriggeringPolicy
– vil fungere hvis en ny dag starter (gjeldende dato endres)SizeBasedTriggeringPolicy
– vil fungere hvis filstørrelsen når 250 MB