5.1 Lista filtrów
Logger pozwala bardzo fajnie skonfigurować filtrowanie wiadomości. Aby to zrobić, ma kilkadziesiąt filtrów z różnymi parametrami. Poniższa tabela przedstawia najpopularniejsze z nich.
Filtry | Opis | |
---|---|---|
1 | Filtr Burst | Pozwala kontrolować częstotliwość komunikatów na sekundę dla danego poziomu logowania. |
2 | Filtr kompozytowy | Umożliwia ustawienie wielu filtrów sekwencyjnych. |
3 | Dynamiczny filtr progowy | Umożliwia włączenie szczegółowego rejestrowania, jeśli w dzienniku zostaną znalezione określone informacje. |
4 | Filtr mapy | Umożliwia zbudowanie złożonego wyrażenia logicznego dla filtra z kilku parametrów. |
5 | Filtr znaczników | Pozwala na filtrowanie wiadomości według tagów, tag musi być najpierw dodany podczas logowania zdarzeń. |
6 | Filtr wyrażeń regularnych | Pozwala ustawić maskę - wyrażenie regularne. |
7 | Filtr danych strukturalnych | Umożliwia filtrowanie wiadomości według obecności w nich określonych danych. |
8 | Filtr ThreadContextMapFilter | Pozwala zarządzać filtrami na podstawie danych pobranych z kontekstu bieżącego wątku. |
9 | Filtr progowy | Steruje rejestrowaniem na podstawie poziomu komunikatu dziennika. |
10 | Filtr czasu | Umożliwia włączanie i wyłączanie filtrów o określonych porach. |
Poniżej omówimy tylko trzy z nich. Możesz dowiedzieć się więcej o tych filtrach na ich oficjalnej stronie internetowej .
5.2 Filtr czasu
Filtr TimeFilter
umożliwia włączanie i wyłączanie filtrów o określonej godzinie, posiada 5 parametrów:
1 | początek | Czas rozpoczęcia rejestracji w formacieHH:mm:ss |
2 | koniec | Czas wylogowania w formacieHH:mm:ss |
3 | strefa czasowa | Ustawia strefę czasową. |
4 | onMatch | Jak zalogować się, jeśli warunek filtru jest prawdziwy . Może ACCEPT , DENY lub NEUTRAL . Domyślnie NEUTRAL . |
5 | onNiedopasowanie | Jak się zalogować, jeśli warunek filtra jest fałszywy . Może ACCEPT , DENY lub NEUTRAL . Domyślnie NEUTRAL . |
Skonfigurujmy filtr, który będzie włączał logowanie o 5 rano i wyłączał o 5:30 każdego dnia. Przykład z kompletną konfiguracją filtra znajduje się poniżej:
<?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 Filtr wyrażeń regularnych
Filtr RegexFilter
umożliwia ustawienie maski (wyrażenia regularnego) do filtrowania wiadomości. Ten filtr ma 4 parametry:
1 | wyrażenie regularne | Określa wyrażenie regularne - maskę używaną do filtrowania wiadomości.HH:mm:ss |
2 | użyj RawMsg | Maska jest stosowana w wiadomości przed formatowaniem (prawda) lub po formatowaniu (fałsz) |
3 | onMatch | Jak zalogować się, jeśli warunek filtru jest prawdziwy . Może ACCEPT , DENY lub NEUTRAL . Domyślnie NEUTRAL . |
4 | onNiedopasowanie | Jak się zalogować, jeśli warunek filtra jest fałszywy . Może ACCEPT , DENY lub NEUTRAL . Domyślnie NEUTRAL . |
Skonfigurujmy filtr, który będzie przepuszczał tylko wiadomości zawierające słowo codegym. Przykład z kompletną konfiguracją filtra znajduje się poniżej:
<?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 Filtr progowy
Filtr ThresholdFilter umożliwia skonfigurowanie filtrowania według poziomu wiadomości. Ma tylko 3 parametry:
1 | poziom | Ustawia nazwę poziomu logowania komunikatów: ERROR , DEBUG , … |
2 | onMatch | Jak zalogować się, jeśli warunek filtru jest prawdziwy . Może ACCEPT , DENY lub NEUTRAL . Domyślnie NEUTRAL . |
3 | onNiedopasowanie | Jak się zalogować, jeśli warunek filtra jest fałszywy . Może ACCEPT , DENY lub NEUTRAL . Domyślnie NEUTRAL . |
Skonfigurujmy filtr, który będzie przepuszczał tylko wiadomości o poziomie DEBUG
. Przykład z kompletną konfiguracją filtra znajduje się poniżej:
<?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>