5.1 Liste der Filter
Mit dem Logger können Sie die Nachrichtenfilterung sehr cool konfigurieren. Dafür verfügt er über ein paar Dutzend Filter mit allen möglichen Parametern. Die folgende Tabelle zeigt die beliebtesten.
Filter | Beschreibung | |
---|---|---|
1 | BurstFilter | Ermöglicht Ihnen, die Häufigkeit von Nachrichten pro Sekunde für eine bestimmte Protokollierungsstufe zu steuern. |
2 | CompositeFilter | Ermöglicht Ihnen, mehrere sequentielle Filter festzulegen. |
3 | DynamicThresholdFilter | Ermöglicht Ihnen, die detaillierte Protokollierung zu aktivieren, wenn bestimmte Informationen im Protokoll gefunden werden. |
4 | MapFilter | Ermöglicht Ihnen, aus mehreren Parametern einen komplexen logischen Ausdruck für den Filter zu erstellen. |
5 | MarkerFilter | Ermöglicht das Filtern von Nachrichten nach Tags. Das Tag muss zuerst während der Ereignisprotokollierung hinzugefügt werden. |
6 | RegexFilter | Ermöglicht das Festlegen einer Maske – eines regulären Ausdrucks. |
7 | Strukturierter Datenfilter | Ermöglicht Ihnen, Nachrichten nach dem Vorhandensein bestimmter Daten darin zu filtern. |
8 | ThreadContextMapFilter | Ermöglicht die Verwaltung von Filtern basierend auf Daten aus dem Kontext des aktuellen Threads. |
9 | Schwellenwertfilter | Steuert die Protokollierung basierend auf der Protokollnachrichtenebene. |
10 | ZeitFilter | Ermöglicht Ihnen, Filter zu bestimmten Zeiten ein- und auszuschalten. |
Im Folgenden werden wir nur über drei davon sprechen. Weitere Informationen zu diesen Filtern finden Sie auf der offiziellen Website .
5.2 Zeitfilter
Mit dem Filter TimeFilter
können Sie Filter zu einem bestimmten Zeitpunkt ein- und ausschalten. Er verfügt über 5 Parameter:
1 | Start | Startzeit der Protokollierung im FormatHH:mm:ss |
2 | Ende | Abmeldezeit im FormatHH:mm:ss |
3 | Zeitzone | Legt die Zeitzone fest. |
4 | onMatch | So protokollieren Sie, ob die Filterbedingung wahr ist . Vielleicht ACCEPT , DENY oder NEUTRAL . Standard NEUTRAL . |
5 | onMismatch | So protokollieren Sie, ob die Filterbedingung falsch ist . Vielleicht ACCEPT , DENY oder NEUTRAL . Standard NEUTRAL . |
Richten wir einen Filter ein, der die Protokollierung jeden Tag um 5:00 Uhr morgens einschaltet und um 5:30 Uhr wieder ausschaltet. Nachfolgend finden Sie ein Beispiel mit einer vollständigen Filterkonfiguration:
<?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
Mit dem Filter RegexFilter
können Sie eine Maske (regulären Ausdruck) zum Filtern von Nachrichten festlegen. Dieser Filter hat 4 Parameter:
1 | Regex | Gibt einen regulären Ausdruck an – eine Maske, die zum Filtern von Nachrichten verwendet wird.HH:mm:ss |
2 | useRawMsg | Die Maske wird in der Nachricht vor der Formatierung (true) oder nach der Formatierung (false) angewendet. |
3 | onMatch | So protokollieren Sie, ob die Filterbedingung wahr ist . Vielleicht ACCEPT , DENY oder NEUTRAL . Standard NEUTRAL . |
4 | onMismatch | So protokollieren Sie, ob die Filterbedingung falsch ist . Vielleicht ACCEPT , DENY oder NEUTRAL . Standard NEUTRAL . |
Lassen Sie uns einen Filter einrichten, der nur Nachrichten zulässt, die das Wort Javarush enthalten. Nachfolgend finden Sie ein Beispiel mit einer vollständigen Filterkonfiguration:
<?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 Schwellenwertfilter
Mit dem ThresholdFilter -Filter können Sie die Filterung nach Nachrichtenebene konfigurieren. Es hat nur 3 Parameter:
1 | eben | Legt den Namen der Nachrichtenprotokollierungsebene fest: ERROR , DEBUG , … |
2 | onMatch | So protokollieren Sie, ob die Filterbedingung wahr ist . Vielleicht ACCEPT , DENY oder NEUTRAL . Standard NEUTRAL . |
3 | onMismatch | So protokollieren Sie, ob die Filterbedingung falsch ist . Vielleicht ACCEPT , DENY oder NEUTRAL . Standard NEUTRAL . |
Lassen Sie uns einen Filter einrichten, der nur Nachrichten der Ebene zulässt DEBUG
. Nachfolgend finden Sie ein Beispiel mit einer vollständigen Filterkonfiguration:
<?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