Lijst met bijlagen
Met de logger kunt u gegevens in meerdere bestanden tegelijk opslaan. Dergelijke uitvoergegevensstromen worden appenders genoemd (van append). Er zijn nogal wat standaard appenders, dus we behandelen alleen de meest populaire:
bijlagen | Beschrijving | |
---|---|---|
1 | Troosten | Drukt gegevens af naar de console |
2 | bestand | Voert gegevens uit naar een bestand |
3 | DailyRollingFile | Voert gegevens uit naar een bestand, het bestand wordt cyclisch overschreven |
4 | Asynchroon | Hiermee kunt u asynchroon gegevens naar een andere appender schrijven |
5 | Stopcontact | Schrijft gegevens naar een specifieke socket |
6 | JDBC | Schrijft berichten naar de database met behulp van het JDBC-protocol |
7 | PPV | Schrijft berichten naar de database met behulp van het JPA-protocol |
8 | HTTP | Verzendt gebeurtenissen via het HTTP-protocol naar een externe server |
9 | SMTP | Slaat berichten op in een buffer en verzendt ze vervolgens als e-mail |
Goede documentatie voor alle appenders staat op hun officiële website
En hieronder zullen we de meest populaire en eenvoudige bekijken.
ConsoleAppender
De eenvoudigste appender isConsoleApender
. Zoals je misschien al geraden hebt, schrijft hij gewoon zijn berichten naar de console. Het heeft verschillende interessante parameters voor ons:
attributen | ||
---|---|---|
1 | naam | Appender naam |
2 | filter | Hiermee kunt u bepaalde berichten filteren |
3 | indeling | Specificeert de opmaak van berichten bij uitvoer |
4 | doel | Specificeert waar te schrijven: SYTEM_OUT ofSYSTEM_ERR |
Het is heel eenvoudig om het te configureren:
<?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>
BestandAppender
De handigste apper isFileAppender
. In tegenstelling tot ConsoleAppender
hij schrijft zijn berichten naar een bestand. Dat is erg handig als je applicatie ergens op de server draait. Het heeft veel parameters, omdat het moet bestanden op verschillende besturingssystemen kunnen schrijven.
Maar we zullen alleen de meest populaire bekijken.
1 | naam | Specificeert de naam van de appender |
2 | filter | Hiermee kunt u bepaalde berichten filteren |
3 | indeling | Specificeert de opmaak van berichten bij uitvoer |
4 | bestandsnaam | Specificeert de naam van het bestand waarin berichten moeten worden geschreven |
5 | toevoegen | Als true , dan worden de berichten toegevoegd aan het oude logbestand, als false - het logbestand wordt elke keer dat de toepassing wordt gestart opnieuw gemaakt. |
6 | buffer grootte | Stelt de buffergrootte in bytes in |
7 | directFlush | Als true , dan wordt elk bericht eigenlijk direct naar schijf geschreven (zonder buffer). Het logboek begint langzaam te werken, maar dit voorkomt dat u gegevens verliest wanneer het programma crasht. |
U weet al hoe u goed met bestanden kunt werken, dus deze instellingen zijn niets nieuws voor u. Het configureren van zo'n logger is nog eenvoudiger dan een consolelogger:
<?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
De meest populaire appender isRollingFileAppender
. In tegenstelling FileAppender
hiermee kunt u het logboek in veel kleine bestanden splitsen. Dit is erg belangrijk voor grote blokken. Bovendien kunt u regels instellen voor wat u met oude bestanden moet doen nadat er nieuwe zijn geschreven.
En deze apper heeft bijna honderd verschillende instellingen. Via de link kunt u meer over hen te weten komen .
Overweeg de meest populaire kenmerken van deze appender:
attributen | ||
---|---|---|
1 | naam | Specificeert de naam van de appender |
2 | filter | Hiermee kunt u bepaalde berichten filteren |
3 | indeling | Specificeert de opmaak van berichten bij uitvoer |
4 | bestandsnaam | Specificeert de naam van het bestand waarin berichten moeten worden geschreven |
5 | bestandspatroon | Specificeert een naamgevingspatroon voor archiefbestanden die niet meer worden geschreven |
6 | beleid | Specificeert de voorwaarde wanneer het bestand moet worden overschreven |
7 | strategie | Beschrijft wat te doen met oude bestanden: archiveren, geschiedenis voor hoeveel dagen te bewaren, enz. |
Hier is een goed voorbeeld:
<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>
De parameter filePattern
specificeert een sjabloon voor archieven van oude logboeken. Er zijn er ook twee, wanneer geactiveerd, wordt een nieuw bestand geschreven:
TimeBasedTriggeringPolicy
– werkt als een nieuwe dag begint (de huidige datum verandert)SizeBasedTriggeringPolicy
- werkt als de bestandsgrootte 250 MB bereikt