CodeGym/Kurso sa Java/Modyul 3/Mga filter ng log sa Log4j

Mga filter ng log sa Log4j

Available

5.1 Listahan ng mga filter

Binibigyang-daan ka ng logger na napaka-cool na i-configure ang pag-filter ng mensahe. Upang gawin ito, mayroon siyang ilang dosenang mga filter na may lahat ng uri ng mga parameter. Ipinapakita ng talahanayan sa ibaba ang mga pinakasikat.

Mga filter Paglalarawan
1 BurstFilter Binibigyang-daan kang kontrolin ang dalas ng mga mensahe bawat segundo para sa isang naibigay na antas ng pag-log.
2 CompositeFilter Binibigyang-daan kang magtakda ng maraming sequential na mga filter.
3 DynamicThresholdFilter Binibigyang-daan kang paganahin ang detalyadong pag-log kung ang ilang impormasyon ay matatagpuan sa log.
4 MapFilter Binibigyang-daan kang bumuo ng isang kumplikadong lohikal na expression para sa filter mula sa ilang mga parameter.
5 MarkerFilter Binibigyang-daan kang mag-filter ng mga mensahe ayon sa mga tag, dapat munang idagdag ang tag sa panahon ng pag-log ng kaganapan.
6 RegexFilter Binibigyang-daan kang magtakda ng mask - isang regular na expression.
7 StructuredDataFilter Nagbibigay-daan sa iyong i-filter ang mga mensahe ayon sa pagkakaroon ng ilang partikular na data sa mga ito.
8 ThreadContextMapFilter Binibigyang-daan kang pamahalaan ang mga filter batay sa data na kinuha mula sa konteksto ng kasalukuyang thread.
9 ThresholdFilter Kinokontrol ang pag-log batay sa antas ng mensahe ng log.
10 TimeFilter Binibigyang-daan kang i-on at i-off ang mga filter sa mga partikular na oras.

Sa ibaba ay pag-uusapan natin ang tungkol sa tatlo lamang sa kanila. Maaari kang matuto nang higit pa tungkol sa mga filter na ito sa kanilang opisyal na website .

5.2 TimeFilter

TimeFilterPinapayagan ka ng filter na i-on at i-off ang mga filter sa isang tiyak na oras, mayroon itong 5 mga parameter:

1 simulan Oras ng pagsisimula ng pag-log sa formatHH:mm:ss
2 wakas Oras ng pag-log off sa formatHH:mm:ss
3 time zone Itinatakda ang time zone.
4 onMatch Paano mag - log kung ang kundisyon ng filter ay totoo . Baka ACCEPT, DENYo NEUTRAL. Default NEUTRAL.
5 onMismatch Paano mag-log kung mali ang kundisyon ng filter . Baka ACCEPT, DENYo NEUTRAL. Default NEUTRAL.

Mag-set up tayo ng filter na mag-o-on sa pag-log sa 5am at i-off ito ng 5:30am araw-araw. Ang isang halimbawa na may kumpletong configuration ng filter ay nasa ibaba:

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

Binibigyang-daan ka ng filter RegexFilterna magtakda ng mask (regular na expression) para sa pag-filter ng mga mensahe. Ang filter na ito ay may 4 na parameter:

1 regex Tinutukoy ang isang regular na expression - isang maskara na ginagamit upang i-filter ang mga mensahe.HH:mm:ss
2 gumamit ngRawMsg Inilapat ang mask sa mensahe bago ang pag-format (true) o pagkatapos ng pag-format (false)
3 onMatch Paano mag - log kung ang kundisyon ng filter ay totoo . Baka ACCEPT, DENYo NEUTRAL. Default NEUTRAL.
4 onMismatch Paano mag-log kung mali ang kundisyon ng filter . Baka ACCEPT, DENYo NEUTRAL. Default NEUTRAL.

Mag-set up tayo ng filter na magpapahintulot lamang sa mga mensaheng naglalaman ng salitang codegym. Ang isang halimbawa na may kumpletong configuration ng filter ay nasa ibaba:

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

Binibigyang-daan ka ng ThresholdFilter na filter na i-configure ang pag-filter ayon sa antas ng mensahe. Mayroon lamang itong 3 mga parameter:

1 antas Itinatakda ang pangalan ng antas ng pag-log ng mensahe: ERROR, DEBUG, …
2 onMatch Paano mag - log kung ang kundisyon ng filter ay totoo . Baka ACCEPT, DENYo NEUTRAL. Default NEUTRAL.
3 onMismatch Paano mag-log kung mali ang kundisyon ng filter . Baka ACCEPT, DENYo NEUTRAL. Default NEUTRAL.

Mag-set up tayo ng filter na papayagan lang ang mga mensahe ng level DEBUG. Ang isang halimbawa na may kumpletong configuration ng filter ay nasa ibaba:

<?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>
Mga komento
  • Sikat
  • Bago
  • Luma
Dapat kang naka-sign in upang mag-iwan ng komento
Wala pang komento ang page na ito