5.1 A szűrők listája

A naplózó lehetővé teszi az üzenetszűrés nagyon hűvös beállítását. Ehhez van pár tucat szűrője mindenféle paraméterrel. Az alábbi táblázat a legnépszerűbbeket mutatja be.

Szűrők Leírás
1 BurstFilter Lehetővé teszi az üzenetek másodpercenkénti gyakoriságának szabályozását egy adott naplózási szinten.
2 Összetett szűrő Lehetővé teszi több szekvenciális szűrő beállítását.
3 DynamicThresholdFilter Lehetővé teszi a részletes naplózás engedélyezését, ha bizonyos információk találhatók a naplóban.
4 MapFilter Lehetővé teszi a szűrő összetett logikai kifejezésének felépítését több paraméterből.
5 MarkerFilter Lehetővé teszi az üzenetek címkék szerinti szűrését, a címkét először az eseménynaplózás során kell hozzáadni.
6 RegexFilter Lehetővé teszi maszk beállítását – reguláris kifejezést.
7 StructuredDataFilter Lehetővé teszi az üzenetek szűrését bizonyos adatok jelenléte alapján.
8 ThreadContextMapFilter Lehetővé teszi a szűrők kezelését az aktuális szál környezetéből vett adatok alapján.
9 ThresholdFilter A naplózást a naplóüzenet szintje alapján vezérli.
10 TimeFilter Lehetővé teszi a szűrők meghatározott időpontokban történő be- és kikapcsolását.

Az alábbiakban ezek közül csak háromról fogunk beszélni. Ezekről a szűrőkről többet megtudhat a hivatalos webhelyükön .

5.2 TimeFilter

A szűrő TimeFilterlehetővé teszi a szűrők egy adott időpontban történő be- és kikapcsolását, 5 paraméterrel rendelkezik:

1 Rajt A naplózás kezdő időpontja a formátumbanHH:mm:ss
2 vége Kijelentkezési idő a formátumbanHH:mm:ss
3 időzóna Beállítja az időzónát.
4 onMatch Hogyan lehet naplózni, ha a szűrőfeltétel igaz . Talán ACCEPT, DENYvagy NEUTRAL. Alapértelmezett NEUTRAL.
5 onMimatch Hogyan lehet naplózni, ha a szűrő feltétele hamis . Talán ACCEPT, DENYvagy NEUTRAL. Alapértelmezett NEUTRAL.

Állítsunk be egy szűrőt, amely minden nap hajnali 5-kor bekapcsolja a naplózást és 5:30-kor kikapcsolja. Az alábbiakban egy példa a teljes szűrőkonfigurációra:


    <?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

A szűrő RegexFilterlehetővé teszi maszk (reguláris kifejezés) beállítását az üzenetek szűréséhez. Ennek a szűrőnek 4 paramétere van:

1 regex Megad egy reguláris kifejezést – egy maszkot, amely az üzenetek szűrésére szolgál.HH:mm:ss
2 userRawMsg A maszk a formázás előtt (igaz) vagy a formázás után (hamis) kerül alkalmazásra az üzenetben.
3 onMatch Hogyan lehet naplózni, ha a szűrőfeltétel igaz . Talán ACCEPT, DENYvagy NEUTRAL. Alapértelmezett NEUTRAL.
4 onMimatch Hogyan lehet naplózni, ha a szűrő feltétele hamis . Talán ACCEPT, DENYvagy NEUTRAL. Alapértelmezett NEUTRAL.

Állítsunk be egy szűrőt, amely csak a codegym szót tartalmazó üzeneteket engedélyezi. Az alábbiakban egy példa a teljes szűrőkonfigurációra:


    <?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

A ThresholdFilter szűrő lehetővé teszi az üzenetszint szerinti szűrés beállítását. Csak 3 paramétere van:

1 szint Beállítja az üzenetnaplózási szint nevét: ERROR, DEBUG, …
2 onMatch Hogyan lehet naplózni, ha a szűrőfeltétel igaz . Talán ACCEPT, DENYvagy NEUTRAL. Alapértelmezett NEUTRAL.
3 onMimatch Hogyan lehet naplózni, ha a szűrő feltétele hamis . Talán ACCEPT, DENYvagy NEUTRAL. Alapértelmezett NEUTRAL.

Állítsunk be egy szűrőt, amely csak a szintű üzeneteket engedélyezi DEBUG. Az alábbiakban egy példa a teljes szűrőkonfigurációra:


    <?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>