5.1 ఫిల్టర్‌ల జాబితా

మెసేజ్ ఫిల్టరింగ్‌ను చాలా కూల్‌గా కాన్ఫిగర్ చేయడానికి లాగర్ మిమ్మల్ని అనుమతిస్తుంది. ఇది చేయుటకు, అతను అన్ని రకాల పారామితులతో డజను ఫిల్టర్లను కలిగి ఉన్నాడు. దిగువ పట్టిక అత్యంత ప్రజాదరణ పొందిన వాటిని చూపుతుంది.

ఫిల్టర్లు వివరణ
1 బర్స్ట్ ఫిల్టర్ ఇచ్చిన లాగింగ్ స్థాయి కోసం సెకనుకు సందేశాల ఫ్రీక్వెన్సీని నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది.
2 కాంపోజిట్ ఫిల్టర్ బహుళ సీక్వెన్షియల్ ఫిల్టర్‌లను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
3 డైనమిక్ థ్రెషోల్డ్ ఫిల్టర్ లాగ్‌లో నిర్దిష్ట సమాచారం కనుగొనబడితే వివరణాత్మక లాగింగ్‌ను ప్రారంభించేందుకు మిమ్మల్ని అనుమతిస్తుంది.
4 మ్యాప్ ఫిల్టర్ అనేక పారామితుల నుండి ఫిల్టర్ కోసం సంక్లిష్టమైన తార్కిక వ్యక్తీకరణను రూపొందించడానికి మిమ్మల్ని అనుమతిస్తుంది.
5 మార్కర్ ఫిల్టర్ ట్యాగ్‌ల ద్వారా సందేశాలను ఫిల్టర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, ఈవెంట్ లాగింగ్ సమయంలో ట్యాగ్ తప్పనిసరిగా జోడించబడాలి.
6 RegexFilter మాస్క్‌ను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది - సాధారణ వ్యక్తీకరణ.
7 నిర్మాణాత్మక డేటా ఫిల్టర్ సందేశాలలో నిర్దిష్ట డేటా ఉండటం ద్వారా వాటిని ఫిల్టర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
8 ThreadContextMapFilter ప్రస్తుత థ్రెడ్ సందర్భం నుండి తీసుకోబడిన డేటా ఆధారంగా ఫిల్టర్‌లను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది.
9 థ్రెషోల్డ్ ఫిల్టర్ లాగ్ సందేశ స్థాయి ఆధారంగా లాగింగ్‌ను నియంత్రిస్తుంది.
10 టైమ్ ఫిల్టర్ నిర్దిష్ట సమయాల్లో ఫిల్టర్‌లను ఆన్ మరియు ఆఫ్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

క్రింద మేము వాటిలో మూడు గురించి మాట్లాడుతాము. మీరు వారి అధికారిక వెబ్‌సైట్‌లో ఈ ఫిల్టర్‌ల గురించి మరింత తెలుసుకోవచ్చు .

5.2 టైమ్‌ఫిల్టర్

ఫిల్టర్ TimeFilterఒక నిర్దిష్ట సమయంలో ఫిల్టర్‌లను ఆన్ మరియు ఆఫ్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, దీనికి 5 పారామితులు ఉన్నాయి:

1 ప్రారంభించండి ఫార్మాట్‌లో ప్రారంభ సమయాన్ని లాగిన్ చేయడంHH:mm:ss
2 ముగింపు ఫార్మాట్‌లో లాగ్ ఆఫ్ సమయంHH:mm:ss
3 సమయమండలం సమయ క్షేత్రాన్ని సెట్ చేస్తుంది.
4 ఆన్ మ్యాచ్ ఫిల్టర్ పరిస్థితి నిజమైతే ఎలా లాగ్ చేయాలి . బహుశా ACCEPT, DENYలేదా NEUTRAL. డిఫాల్ట్ NEUTRAL.
5 అసమతుల్యత ఫిల్టర్ కండిషన్ తప్పు అయితే ఎలా లాగ్ చేయాలి . బహుశా ACCEPT, DENYలేదా NEUTRAL. డిఫాల్ట్ NEUTRAL.

ప్రతిరోజూ ఉదయం 5 గంటలకు లాగింగ్‌ని ఆన్ చేసి, ఉదయం 5:30 గంటలకు ఆఫ్ చేసే ఫిల్టర్‌ని సెటప్ చేద్దాం. పూర్తి ఫిల్టర్ కాన్ఫిగరేషన్‌తో ఉదాహరణ క్రింద ఉంది:


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

RegexFilterసందేశాలను ఫిల్టర్ చేయడానికి ఒక ముసుగు (సాధారణ వ్యక్తీకరణ) సెట్ చేయడానికి ఫిల్టర్ మిమ్మల్ని అనుమతిస్తుంది. ఈ ఫిల్టర్ 4 పారామితులను కలిగి ఉంది:

1 రెజెక్స్ సాధారణ వ్యక్తీకరణను నిర్దేశిస్తుంది - సందేశాలను ఫిల్టర్ చేయడానికి ఉపయోగించే ముసుగు.HH:mm:ss
2 ఉపయోగించండిRawMsg ఫార్మాటింగ్ చేయడానికి ముందు (నిజం) లేదా ఫార్మాటింగ్ తర్వాత (తప్పు) సందేశంలో ముసుగు వర్తించబడుతుంది
3 ఆన్ మ్యాచ్ ఫిల్టర్ పరిస్థితి నిజమైతే ఎలా లాగ్ చేయాలి . బహుశా ACCEPT, DENYలేదా NEUTRAL. డిఫాల్ట్ NEUTRAL.
4 అసమతుల్యత ఫిల్టర్ కండిషన్ తప్పు అయితే ఎలా లాగ్ చేయాలి . బహుశా ACCEPT, DENYలేదా NEUTRAL. డిఫాల్ట్ NEUTRAL.

codegym అనే పదాన్ని కలిగి ఉన్న సందేశాలను మాత్రమే అనుమతించే ఫిల్టర్‌ని సెటప్ చేద్దాం. పూర్తి ఫిల్టర్ కాన్ఫిగరేషన్‌తో ఉదాహరణ క్రింద ఉంది:


    <?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 థ్రెషోల్డ్ ఫిల్టర్

థ్రెషోల్డ్ ఫిల్టర్ ఫిల్టర్ సందేశ స్థాయి ద్వారా ఫిల్టరింగ్‌ను కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. దీనికి 3 పారామితులు మాత్రమే ఉన్నాయి:

1 స్థాయి సందేశ లాగింగ్ స్థాయి పేరును సెట్ చేస్తుంది: ERROR, DEBUG, …
2 ఆన్ మ్యాచ్ ఫిల్టర్ పరిస్థితి నిజమైతే ఎలా లాగ్ చేయాలి . బహుశా ACCEPT, DENYలేదా NEUTRAL. డిఫాల్ట్ NEUTRAL.
3 అసమతుల్యత ఫిల్టర్ కండిషన్ తప్పు అయితే ఎలా లాగ్ చేయాలి . బహుశా ACCEPT, DENYలేదా NEUTRAL. డిఫాల్ట్ NEUTRAL.

స్థాయి సందేశాలను మాత్రమే అనుమతించే ఫిల్టర్‌ని సెటప్ చేద్దాం DEBUG. పూర్తి ఫిల్టర్ కాన్ఫిగరేషన్‌తో ఉదాహరణ క్రింద ఉంది:


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