5.1 Lista filtrelor
Loggerul vă permite să configurați foarte ușor filtrarea mesajelor. Pentru a face acest lucru, are câteva zeci de filtre cu tot felul de parametri. Tabelul de mai jos le prezintă pe cele mai populare.
Filtre | Descriere | |
---|---|---|
1 | BurstFilter | Vă permite să controlați frecvența mesajelor pe secundă pentru un anumit nivel de înregistrare. |
2 | CompositeFilter | Vă permite să setați mai multe filtre secvențiale. |
3 | Dynamic ThresholdFilter | Vă permite să activați înregistrarea detaliată dacă anumite informații sunt găsite în jurnal. |
4 | MapFilter | Vă permite să construiți o expresie logică complexă pentru filtru din mai mulți parametri. |
5 | MarkerFilter | Vă permite să filtrați mesajele după etichete, eticheta trebuie mai întâi adăugată în timpul înregistrării evenimentelor. |
6 | RegexFilter | Vă permite să setați o mască - o expresie regulată. |
7 | StructuredDataFilter | Vă permite să filtrați mesajele după prezența anumitor date în ele. |
8 | ThreadContextMapFilter | Vă permite să gestionați filtre pe baza datelor preluate din contextul firului curent. |
9 | ThresholdFilter | Controlează înregistrarea în funcție de nivelul mesajului de jurnal. |
10 | TimeFilter | Vă permite să activați și să dezactivați filtrele la anumite ore. |
Mai jos vom vorbi despre doar trei dintre ele. Puteți afla mai multe despre aceste filtre pe site-ul lor oficial .
5.2 TimeFilter
Filtrul TimeFilter
vă permite să activați și să dezactivați filtrele la un anumit moment, are 5 parametri:
1 | start | Ora de începere a înregistrării în formatHH:mm:ss |
2 | Sfârşit | Ora de deconectare în formatHH:mm:ss |
3 | fus orar | Setează fusul orar. |
4 | onMatch | Cum se înregistrează dacă condiția filtrului este adevărată . Poate ACCEPT , DENY sau NEUTRAL . Implicit NEUTRAL . |
5 | peNepotrivire | Cum se înregistrează dacă condiția filtrului este falsă . Poate ACCEPT , DENY sau NEUTRAL . Implicit NEUTRAL . |
Să instalăm un filtru care va activa înregistrarea la ora 5 dimineața și îl va opri la ora 5:30 în fiecare zi. Un exemplu cu o configurație completă a filtrului este mai jos:
<?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
Filtrul RegexFilter
vă permite să setați o mască (expresie regulată) pentru filtrarea mesajelor. Acest filtru are 4 parametri:
1 | regex | Specifică o expresie regulată - o mască care este folosită pentru filtrarea mesajelor.HH:mm:ss |
2 | useRawMsg | Masca este aplicată în mesaj înainte de formatare (adevărat) sau după formatare (fals) |
3 | onMatch | Cum se înregistrează dacă condiția filtrului este adevărată . Poate ACCEPT , DENY sau NEUTRAL . Implicit NEUTRAL . |
4 | peNepotrivire | Cum se înregistrează dacă condiția filtrului este falsă . Poate ACCEPT , DENY sau NEUTRAL . Implicit NEUTRAL . |
Să setăm un filtru care va permite doar mesajele care conțin cuvântul codegym. Un exemplu cu o configurație completă a filtrului este mai jos:
<?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 ThresholdFilter
Filtrul ThresholdFilter vă permite să configurați filtrarea după nivel de mesaj. Are doar 3 parametri:
1 | nivel | Setează numele nivelului de înregistrare a mesajelor: ERROR , DEBUG , … |
2 | onMatch | Cum se înregistrează dacă condiția filtrului este adevărată . Poate ACCEPT , DENY sau NEUTRAL . Implicit NEUTRAL . |
3 | peNepotrivire | Cum se înregistrează dacă condiția filtrului este falsă . Poate ACCEPT , DENY sau NEUTRAL . Implicit NEUTRAL . |
Să setăm un filtru care va permite doar mesaje de nivel DEBUG
. Un exemplu cu o configurație completă a filtrului este mai jos:
<?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