5.1 Lijst met filters
Met de logger kunt u het filteren van berichten heel cool configureren. Hiervoor heeft hij een paar dozijn filters met allerlei parameters. De onderstaande tabel toont de meest populaire.
Filters | Beschrijving | |
---|---|---|
1 | Burstfilter | Hiermee kunt u de frequentie van berichten per seconde regelen voor een bepaald logniveau. |
2 | SamengesteldFilter | Hiermee kunt u meerdere opeenvolgende filters instellen. |
3 | DynamicThresholdFilter | Hiermee kunt u gedetailleerde logboekregistratie inschakelen als bepaalde informatie in het logboek wordt gevonden. |
4 | MapFilter | Hiermee kunt u een complexe logische uitdrukking voor het filter samenstellen op basis van verschillende parameters. |
5 | MarkerFilter | Hiermee kunt u berichten filteren op tags, de tag moet eerst worden toegevoegd tijdens het vastleggen van gebeurtenissen. |
6 | RegexFilter | Hiermee kunt u een masker instellen - een reguliere expressie. |
7 | StructuredDataFilter | Hiermee kunt u berichten filteren op de aanwezigheid van bepaalde gegevens erin. |
8 | ThreadContextMapFilter | Hiermee kunt u filters beheren op basis van gegevens uit de context van de huidige thread. |
9 | Drempelfilter | Beheert logboekregistratie op basis van het logboekberichtniveau. |
10 | Tijdfilter | Hiermee kunt u filters op bepaalde tijden in- en uitschakelen. |
Hieronder zullen we het hebben over slechts drie van hen. U kunt meer over deze filters leren op hun officiële website .
5.2 Tijdfilter
Met het filter TimeFilter
kunt u filters op een bepaald moment in- en uitschakelen, het heeft 5 parameters:
1 | begin | Starttijd vastleggen in het formaatHH:mm:ss |
2 | einde | Afmeldtijd in het formaatHH:mm:ss |
3 | tijdzone | Stelt de tijdzone in. |
4 | opMatch | Hoe te loggen als de filtervoorwaarde waar is . Misschien ACCEPT , DENY of NEUTRAL . Standaard NEUTRAL . |
5 | opMismatch | Hoe te loggen als de filtervoorwaarde onwaar is . Misschien ACCEPT , DENY of NEUTRAL . Standaard NEUTRAL . |
Laten we een filter instellen dat logboekregistratie elke dag om 05.00 uur inschakelt en om 05.30 uur uitschakelt. Een voorbeeld met een volledige filterconfiguratie staat hieronder:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.3 RegexFilter
Met het filter RegexFilter
kunt u een masker (reguliere expressie) instellen voor het filteren van berichten. Dit filter heeft 4 parameters:
1 | regex | Specificeert een reguliere expressie - een masker dat wordt gebruikt om berichten te filteren.HH:mm:ss |
2 | gebruikRawMsg | Het masker wordt toegepast in het bericht vóór formatteren (true) of na formatteren (false) |
3 | opMatch | Hoe te loggen als de filtervoorwaarde waar is . Misschien ACCEPT , DENY of NEUTRAL . Standaard NEUTRAL . |
4 | opMismatch | Hoe te loggen als de filtervoorwaarde onwaar is . Misschien ACCEPT , DENY of NEUTRAL . Standaard NEUTRAL . |
Laten we een filter instellen dat alleen berichten toestaat die het woord codegym bevatten. Een voorbeeld met een volledige filterconfiguratie staat hieronder:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<RegexFilter regex=".* codegym .*" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.4 Drempelfilter
Met het ThresholdFilter -filter kunt u filteren op berichtniveau configureren. Het heeft slechts 3 parameters:
1 | niveau | Stelt de naam van het berichtregistratieniveau in: ERROR , DEBUG , … |
2 | opMatch | Hoe te loggen als de filtervoorwaarde waar is . Misschien ACCEPT , DENY of NEUTRAL . Standaard NEUTRAL . |
3 | opMismatch | Hoe te loggen als de filtervoorwaarde onwaar is . Misschien ACCEPT , DENY of NEUTRAL . Standaard NEUTRAL . |
Laten we een filter instellen dat alleen berichten van niveau toestaat DEBUG
. Een voorbeeld met een volledige filterconfiguratie staat hieronder:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
GO TO FULL VERSION