5.1 Lista över filter
Loggern låter dig konfigurera meddelandefiltrering väldigt coolt. För att göra detta har han ett par dussin filter med alla möjliga parametrar. Tabellen nedan visar de mest populära.
| Filter | Beskrivning | |
|---|---|---|
| 1 | BurstFilter | Låter dig styra frekvensen för meddelanden per sekund för en given loggningsnivå. |
| 2 | CompositeFilter | Låter dig ställa in flera sekventiella filter. |
| 3 | DynamicThresholdFilter | Låter dig aktivera detaljerad loggning om viss information finns i loggen. |
| 4 | MapFilter | Låter dig bygga ett komplext logiskt uttryck för filtret från flera parametrar. |
| 5 | MarkerFilter | Låter dig filtrera meddelanden efter taggar, taggen måste först läggas till under händelseloggningen. |
| 6 | RegexFilter | Låter dig ställa in en mask - ett reguljärt uttryck. |
| 7 | StructuredDataFilter | Låter dig filtrera meddelanden efter förekomsten av viss data i dem. |
| 8 | ThreadContextMapFilter | Låter dig hantera filter baserat på data hämtade från kontexten för den aktuella tråden. |
| 9 | Tröskelfilter | Styr loggning baserat på loggmeddelandenivån. |
| 10 | Tidsfilter | Låter dig slå på och av filter vid specifika tidpunkter. |
Nedan kommer vi bara att prata om tre av dem. Du kan lära dig mer om dessa filter på deras officiella webbplats .
5.2 Tidsfilter
Filtret TimeFilterlåter dig slå på och av filter vid en viss tidpunkt, det har 5 parametrar:
| 1 | Start | Loggningsstarttid i formatetHH:mm:ss |
| 2 | slutet | Utloggningstid i formatetHH:mm:ss |
| 3 | tidszon | Ställer in tidszonen. |
| 4 | på Match | Hur man loggar om filtervillkoret är sant . Kanske ACCEPT, DENYeller NEUTRAL. Standard NEUTRAL. |
| 5 | på Missmatch | Hur man loggar om filtervillkoret är falskt . Kanske ACCEPT, DENYeller NEUTRAL. Standard NEUTRAL. |
Låt oss ställa in ett filter som aktiverar loggning klockan 05.00 och stänger av det klockan 05.30 varje dag. Ett exempel med en komplett filterkonfiguration är nedan:
<?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
Filtret RegexFilterlåter dig ställa in en mask (reguljärt uttryck) för filtrering av meddelanden. Detta filter har 4 parametrar:
| 1 | regex | Anger ett reguljärt uttryck - en mask som används för att filtrera meddelanden.HH:mm:ss |
| 2 | useRawMsg | Masken tillämpas i meddelandet före formatering (true) eller efter formatering (false) |
| 3 | på Match | Hur man loggar om filtervillkoret är sant . Kanske ACCEPT, DENYeller NEUTRAL. Standard NEUTRAL. |
| 4 | på Missmatch | Hur man loggar om filtervillkoret är falskt . Kanske ACCEPT, DENYeller NEUTRAL. Standard NEUTRAL. |
Låt oss ställa in ett filter som endast tillåter meddelanden som innehåller ordet codegym. Ett exempel med en komplett filterkonfiguration är nedan:
<?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 Tröskelfilter
Med filtret ThresholdFilter kan du konfigurera filtrering efter meddelandenivå. Den har bara 3 parametrar:
| 1 | nivå | Ställer in namnet på meddelandeloggningsnivån: , ERROR, DEBUG… |
| 2 | på Match | Hur man loggar om filtervillkoret är sant . Kanske ACCEPT, DENYeller NEUTRAL. Standard NEUTRAL. |
| 3 | på Missmatch | Hur man loggar om filtervillkoret är falskt . Kanske ACCEPT, DENYeller NEUTRAL. Standard NEUTRAL. |
Låt oss ställa in ett filter som endast tillåter meddelanden på nivå DEBUG. Ett exempel med en komplett filterkonfiguration är nedan:
<?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