โค้ดยิม/หลักสูตรจาวา/โมดูล 3/ตัวกรองบันทึกใน Log4j

ตัวกรองบันทึกใน Log4j

ระดับ, บทเรียน
มีอยู่

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>
ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ