CodeGym/Java tanfolyam//Szűrők naplózása a Log4j-ben

Szűrők naplózása a Log4j-ben

Szint, Lecke
Elérhető

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>
Hozzászólások
  • Népszerű
  • Új
  • Régi
Hozzászólás írásához be kell jelentkeznie
Ennek az oldalnak még nincsenek megjegyzései