5.1 Liste over filtre
Loggeren lar deg kjølig konfigurere meldingsfiltrering. For å gjøre dette har han et par dusin filtre med alle slags parametere. Tabellen nedenfor viser de mest populære.
Filtre | Beskrivelse | |
---|---|---|
1 | BurstFilter | Lar deg kontrollere frekvensen av meldinger per sekund for et gitt loggingsnivå. |
2 | Komposittfilter | Lar deg angi flere sekvensielle filtre. |
3 | DynamicThresholdFilter | Lar deg aktivere detaljert logging hvis viss informasjon finnes i loggen. |
4 | Kartfilter | Lar deg bygge et komplekst logisk uttrykk for filteret fra flere parametere. |
5 | MarkerFilter | Lar deg filtrere meldinger etter tagger, taggen må først legges til under hendelsesloggingen. |
6 | RegexFilter | Lar deg angi en maske - et regulært uttrykk. |
7 | StructuredDataFilter | Lar deg filtrere meldinger etter tilstedeværelsen av visse data i dem. |
8 | ThreadContextMapFilter | Lar deg administrere filtre basert på data hentet fra konteksten til gjeldende tråd. |
9 | ThresholdFilter | Styrer logging basert på loggmeldingsnivået. |
10 | Tidsfilter | Lar deg slå filtre av og på til bestemte tider. |
Nedenfor skal vi snakke om bare tre av dem. Du kan lære mer om disse filtrene på deres offisielle nettside .
5.2 Tidsfilter
Filteret TimeFilter
lar deg slå filtre på og av på et bestemt tidspunkt, det har 5 parametere:
1 | start | Logging av starttid i formatetHH:mm:ss |
2 | slutt | Avloggingstid i formatetHH:mm:ss |
3 | tidssone | Stiller inn tidssonen. |
4 | på Match | Hvordan logge hvis filterbetingelsen er sann . Kanskje ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
5 | på Mismatch | Hvordan logge hvis filtertilstanden er usann . Kanskje ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
La oss sette opp et filter som vil slå på logging klokken 05.00 og slå det av klokken 05.30 hver dag. Et eksempel med en komplett filterkonfigurasjon 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
lar deg sette en maske (regulært uttrykk) for filtrering av meldinger. Dette filteret har 4 parametere:
1 | regulært uttrykk | Spesifiserer et regulært uttrykk - en maske som brukes til å filtrere meldinger.HH:mm:ss |
2 | useRawMsg | Masken brukes i meldingen før formatering (true) eller etter formatering (false) |
3 | på Match | Hvordan logge hvis filterbetingelsen er sann . Kanskje ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
4 | på Mismatch | Hvordan logge hvis filtertilstanden er usann . Kanskje ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
La oss sette opp et filter som bare vil tillate meldinger som inneholder ordet codegym. Et eksempel med en komplett filterkonfigurasjon 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 Terskelfilter
ThresholdFilter -filteret lar deg konfigurere filtrering etter meldingsnivå. Den har bare 3 parametere:
1 | nivå | Angir navnet på meldingsloggingsnivået: ERROR , DEBUG , … |
2 | på Match | Hvordan logge hvis filterbetingelsen er sann . Kanskje ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
3 | på Mismatch | Hvordan logge hvis filtertilstanden er usann . Kanskje ACCEPT , DENY eller NEUTRAL . Standard NEUTRAL . |
La oss sette opp et filter som bare tillater meldinger på nivå DEBUG
. Et eksempel med en komplett filterkonfigurasjon 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