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 TimeFilterumoż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, DENYlub NEUTRAL. Domyślnie NEUTRAL. |
| 5 | onNiedopasowanie | Jak się zalogować, jeśli warunek filtra jest fałszywy . Może ACCEPT, DENYlub 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 RegexFilterumoż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, DENYlub NEUTRAL. Domyślnie NEUTRAL. |
| 4 | onNiedopasowanie | Jak się zalogować, jeśli warunek filtra jest fałszywy . Może ACCEPT, DENYlub 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, DENYlub NEUTRAL. Domyślnie NEUTRAL. |
| 3 | onNiedopasowanie | Jak się zalogować, jeśli warunek filtra jest fałszywy . Może ACCEPT, DENYlub 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>
GO TO FULL VERSION