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 TimeFilter
lå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 , DENY eller NEUTRAL . Standard NEUTRAL . |
5 | på Missmatch | Hur man loggar om filtervillkoret är falskt . Kanske ACCEPT , DENY eller 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 RegexFilter
lå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 , DENY eller NEUTRAL . Standard NEUTRAL . |
4 | på Missmatch | Hur man loggar om filtervillkoret är falskt . Kanske ACCEPT , DENY eller 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 , DENY eller NEUTRAL . Standard NEUTRAL . |
3 | på Missmatch | Hur man loggar om filtervillkoret är falskt . Kanske ACCEPT , DENY eller 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>