Bilag i Log4j

Ledig

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_OUTellerSYSTEM_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 ConsoleAppenderhan 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 FileAppenderdet 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 filePatternangiver 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
Kommentarer
  • Populær
  • Ny
  • Gammel
Du skal være logget ind for at skrive en kommentar
Denne side har ingen kommentarer endnu