log4j - การจัดรูปแบบบันทึก

Apache log4j มีไฟล์ Layoutวัตถุแต่ละชิ้นสามารถจัดรูปแบบข้อมูลการบันทึกตามรูปแบบต่างๆ นอกจากนี้ยังสามารถสร้างออบเจ็กต์ Layout ที่จัดรูปแบบข้อมูลการบันทึกด้วยวิธีเฉพาะแอปพลิเคชัน

วัตถุเค้าโครงทั้งหมดได้รับไฟล์ LoggingEvent วัตถุจากไฟล์ Appenderวัตถุ จากนั้นวัตถุ Layout จะดึงอาร์กิวเมนต์ข้อความจาก LoggingEvent และใช้ ObjectRenderer ที่เหมาะสมเพื่อรับการแสดงสตริงของข้อความ

ประเภทเค้าโครง

คลาสระดับบนสุดในลำดับชั้นคือคลาสนามธรรม org.apache.log4j.Layout. นี่คือคลาสพื้นฐานสำหรับคลาส Layout อื่น ๆ ทั้งหมดใน log4j API

คลาส Layout ถูกกำหนดให้เป็นนามธรรมภายในแอปพลิเคชันเราไม่เคยใช้คลาสนี้โดยตรง เราทำงานกับคลาสย่อยของมันแทนซึ่งมีดังนี้:

  • DateLayout

  • HTMLLayout

  • PatternLayout.

  • SimpleLayout

  • XMLLayout

วิธีการจัดวาง

คลาสนี้จัดเตรียมการใช้โครงกระดูกของการดำเนินการทั่วไปในวัตถุโครงร่างอื่น ๆ ทั้งหมดและประกาศวิธีนามธรรมสองวิธี

ซีเนียร์ วิธีการและคำอธิบาย
1 public abstract boolean ignoresThrowable()

ระบุว่าข้อมูลการบันทึกจัดการกับอ็อบเจ็กต์ java.lang.Throwable ที่ส่งผ่านไปยังเป็นส่วนหนึ่งของเหตุการณ์การบันทึกหรือไม่ หากวัตถุ Layout จัดการกับวัตถุ Throwable วัตถุ Layout จะไม่เพิกเฉยและส่งกลับเท็จ

2 public abstract String format(LoggingEvent event)

คลาสย่อยของโครงร่างส่วนบุคคลใช้วิธีนี้สำหรับการจัดรูปแบบเฉพาะโครงร่าง

นอกเหนือจากวิธีนามธรรมเหล่านี้คลาส Layout ยังมีการนำไปใช้อย่างเป็นรูปธรรมสำหรับวิธีการที่ระบุไว้ด้านล่าง:

ซีเนียร์ วิธีการและคำอธิบาย
1 public String getContentType()

ส่งคืนชนิดเนื้อหาที่ใช้โดยวัตถุโครงร่าง คลาสฐานส่งคืนข้อความ / ธรรมดาเป็นชนิดเนื้อหาเริ่มต้น

2 public String getFooter()

ระบุข้อมูลส่วนท้ายของข้อความบันทึก

3 public String getHeader()

ระบุข้อมูลส่วนหัวของข้อความบันทึก

แต่ละคลาสย่อยสามารถส่งคืนข้อมูลเฉพาะคลาสได้โดยการลบล้างการนำวิธีการเหล่านี้ไปใช้อย่างเป็นรูปธรรม