5.1 Liste over filtre
Loggeren giver dig mulighed for meget køligt at konfigurere beskedfiltrering. For at gøre dette har han et par dusin filtre med alle mulige parametre. Tabellen nedenfor viser de mest populære.
Filtre | Beskrivelse | |
---|---|---|
1 | BurstFilter | Giver dig mulighed for at kontrollere frekvensen af beskeder pr. sekund for et givet logningsniveau. |
2 | Kompositfilter | Giver dig mulighed for at indstille flere sekventielle filtre. |
3 | DynamicThresholdFilter | Giver dig mulighed for at aktivere detaljeret logning, hvis der findes visse oplysninger i loggen. |
4 | MapFilter | Giver dig mulighed for at bygge et komplekst logisk udtryk for filteret ud fra flere parametre. |
5 | MarkerFilter | Giver dig mulighed for at filtrere beskeder efter tags, tagget skal først tilføjes under hændelseslogningen. |
6 | RegexFilter | Giver dig mulighed for at indstille en maske - et regulært udtryk. |
7 | StructuredDataFilter | Giver dig mulighed for at filtrere beskeder efter tilstedeværelsen af visse data i dem. |
8 | ThreadContextMapFilter | Giver dig mulighed for at administrere filtre baseret på data taget fra konteksten af den aktuelle tråd. |
9 | ThresholdFilter | Styrer logning baseret på logmeddelelsesniveauet. |
10 | Tidsfilter | Giver dig mulighed for at tænde og slukke for filtre på bestemte tidspunkter. |
Nedenfor vil vi kun tale om tre af dem. Du kan lære mere om disse filtre på deres officielle hjemmeside .
5.2 Tidsfilter
Filteret TimeFilter
giver dig mulighed for at tænde og slukke for filtre på et bestemt tidspunkt, det har 5 parametre:
1 | Start | Logning af starttidspunkt i formatetHH:mm:ss |
2 | ende | Logge af tid i formatetHH:mm:ss |
3 | tidszone | Indstiller tidszonen. |
4 | på Match | Sådan logger du, hvis filterbetingelsen er sand . Måske ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
5 | på Mismatch | Sådan logger du, hvis filterbetingelsen er falsk . Måske ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
Lad os opsætte et filter, der aktiverer logning kl. 05.00 og slår det fra kl. 05.30 hver dag. Et eksempel med en komplet filterkonfiguration er nedenfor:
<?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
Filteret RegexFilter
giver dig mulighed for at indstille en maske (regulært udtryk) til filtrering af beskeder. Dette filter har 4 parametre:
1 | regex | Angiver et regulært udtryk - en maske, der bruges til at filtrere meddelelser.HH:mm:ss |
2 | useRawMsg | Masken anvendes i meddelelsen før formatering (sand) eller efter formatering (falsk) |
3 | på Match | Sådan logger du, hvis filterbetingelsen er sand . Måske ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
4 | på Mismatch | Sådan logger du, hvis filterbetingelsen er falsk . Måske ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
Lad os opsætte et filter, der kun tillader beskeder, der indeholder ordet codegym. Et eksempel med en komplet filterkonfiguration er nedenfor:
<?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 ThresholdFilter
ThresholdFilter- filteret giver dig mulighed for at konfigurere filtrering efter meddelelsesniveau. Den har kun 3 parametre:
1 | niveau | Indstiller navnet på meddelelseslogningsniveauet: ERROR , DEBUG , … |
2 | på Match | Sådan logger du, hvis filterbetingelsen er sand . Måske ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
3 | på Mismatch | Sådan logger du, hvis filterbetingelsen er falsk . Måske ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
Lad os opsætte et filter, der kun tillader meddelelser på niveau DEBUG
. Et eksempel med en komplet filterkonfiguration er nedenfor:
<?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