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_OUTellerSYSTEM_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 ConsoleAppenderhan 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 FileAppenderdet 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 filePatternspesifiserer 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