5.1 รายการตัวกรอง

คนตัดไม้ช่วยให้คุณกำหนดค่าการกรองข้อความได้อย่างยอดเยี่ยม ในการทำเช่นนี้ เขามีตัวกรองสองสามโหลพร้อมพารามิเตอร์ทุกประเภท ตารางด้านล่างแสดงรายการยอดนิยม

ตัวกรอง คำอธิบาย
1 ตัวกรองระเบิด ให้คุณควบคุมความถี่ของข้อความต่อวินาทีสำหรับระดับการบันทึกที่กำหนด
2 ตัวกรองคอมโพสิต ให้คุณตั้งค่าตัวกรองตามลำดับหลายรายการ
3 ตัวกรองเกณฑ์ไดนามิก ให้คุณเปิดใช้งานการบันทึกโดยละเอียดหากพบข้อมูลบางอย่างในบันทึก
4 ตัวกรองแผนที่ ให้คุณสร้างนิพจน์เชิงตรรกะที่ซับซ้อนสำหรับตัวกรองจากหลายพารามิเตอร์
5 ตัวกรองเครื่องหมาย อนุญาตให้คุณกรองข้อความตามแท็ก โดยต้องเพิ่มแท็กก่อนในระหว่างการบันทึกเหตุการณ์
6 ตัวกรอง Regex ให้คุณตั้งค่ามาสก์ - นิพจน์ทั่วไป
7 ตัวกรองข้อมูลโครงสร้าง ให้คุณกรองข้อความตามข้อมูลบางอย่างในนั้น
8 ThreadContextMapFilter ให้คุณจัดการตัวกรองตามข้อมูลที่นำมาจากบริบทของเธรดปัจจุบัน
9 ตัวกรองเกณฑ์ ควบคุมการบันทึกตามระดับข้อความบันทึก
10 ตัวกรองเวลา ให้คุณเปิดและปิดตัวกรองตามเวลาที่กำหนด

ด้านล่างนี้เราจะพูดถึงเพียงสามคนเท่านั้น คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับตัวกรองเหล่านี้ได้จากเว็บไซต์อย่างเป็นทางการ

5.2 ตัวกรองเวลา

ตัวกรองTimeFilterอนุญาตให้คุณเปิดและปิดตัวกรองในช่วงเวลาหนึ่ง โดยมีพารามิเตอร์ 5 ตัว:

1 เริ่ม การบันทึกเวลาเริ่มต้นในรูปแบบHH:mm:ss
2 จบ เวลาออกจากระบบในรูปแบบHH:mm:ss
3 เขตเวลา ตั้งเขตเวลา
4 onMatch วิธีเข้าสู่ระบบหากเงื่อนไขตัวกรองเป็นจริง อาจACCEPTจะDENYหรือNEUTRAL. เริ่มต้นNEUTRAL.
5 บนไม่ตรงกัน วิธีเข้าสู่ระบบหากเงื่อนไขตัวกรองเป็นเท็จ อาจACCEPTจะDENYหรือNEUTRAL. เริ่มต้นNEUTRAL.

มาตั้งค่าตัวกรองที่จะเปิดการบันทึกเวลา 05.00 น. และปิดเวลา 05.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 ตัวกรอง Regex

ตัวกรองRegexFilterช่วยให้คุณตั้งค่ามาสก์ (นิพจน์ทั่วไป) สำหรับการกรองข้อความ ตัวกรองนี้มี 4 พารามิเตอร์:

1 regex ระบุนิพจน์ทั่วไป - มาสก์ที่ใช้ในการกรองข้อความHH:mm:ss
2 ใช้ RawMsg มาสก์ถูกนำไปใช้ในข้อความก่อนการจัดรูปแบบ (จริง) หรือหลังการจัดรูปแบบ (เท็จ)
3 onMatch วิธีเข้าสู่ระบบหากเงื่อนไขตัวกรองเป็นจริง อาจ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 ตัวกรองเกณฑ์

ตัวกรองThresholdFilterช่วยให้คุณกำหนดค่าการกรองตามระดับข้อความได้ มีเพียง 3 พารามิเตอร์:

1 ระดับ ตั้งชื่อระดับการบันทึกข้อความ: ERROR, DEBUG, …
2 onMatch วิธีเข้าสู่ระบบหากเงื่อนไขตัวกรองเป็นจริง อาจ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>