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 TimeFilterlar 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, DENYeller NEUTRAL. Standard NEUTRAL. |
| 5 | på Mismatch | Hvordan logge hvis filtertilstanden er usann . Kanskje ACCEPT, DENYeller 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 RegexFilterlar 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, DENYeller NEUTRAL. Standard NEUTRAL. |
| 4 | på Mismatch | Hvordan logge hvis filtertilstanden er usann . Kanskje ACCEPT, DENYeller 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, DENYeller NEUTRAL. Standard NEUTRAL. |
| 3 | på Mismatch | Hvordan logge hvis filtertilstanden er usann . Kanskje ACCEPT, DENYeller 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