log4j - สถาปัตยกรรม

log4j API เป็นไปตามสถาปัตยกรรมแบบเลเยอร์ที่แต่ละเลเยอร์มีอ็อบเจ็กต์ที่แตกต่างกันเพื่อทำงานที่แตกต่างกัน สถาปัตยกรรมแบบเลเยอร์นี้ทำให้การออกแบบมีความยืดหยุ่นและง่ายต่อการขยายในอนาคต

มีอ็อบเจ็กต์สองประเภทพร้อมใช้งานกับ log4j framework

  • Core Objects:สิ่งเหล่านี้เป็นวัตถุบังคับของกรอบ พวกเขาจำเป็นต้องใช้กรอบ

  • Support Objects:สิ่งเหล่านี้เป็นอ็อบเจ็กต์ทางเลือกของเฟรมเวิร์ก พวกเขาสนับสนุนวัตถุหลักเพื่อทำงานเพิ่มเติม แต่สำคัญ

วัตถุหลัก

วัตถุหลักประกอบด้วยวัตถุประเภทต่อไปนี้ -

วัตถุ Logger

เลเยอร์ระดับบนสุดคือ Logger ซึ่งจัดเตรียมอ็อบเจ็กต์ Logger อ็อบเจ็กต์ Logger มีหน้าที่ในการบันทึกข้อมูลการบันทึกและถูกเก็บไว้ในลำดับชั้นของเนมสเปซ

เค้าโครงวัตถุ

เลเยอร์โครงร่างจัดเตรียมอ็อบเจ็กต์ที่ใช้ในการจัดรูปแบบข้อมูลการบันทึกในสไตล์ต่างๆ ให้การสนับสนุนวัตถุ appender ก่อนที่จะเผยแพร่ข้อมูลการบันทึก

ออบเจ็กต์เค้าโครงมีบทบาทสำคัญในการเผยแพร่ข้อมูลการบันทึกด้วยวิธีที่มนุษย์อ่านได้และนำกลับมาใช้ใหม่ได้

วัตถุ Appender

นี่คือเลเยอร์ระดับล่างที่ให้วัตถุ Appender วัตถุ Appender มีหน้าที่ในการเผยแพร่ข้อมูลการบันทึกไปยังปลายทางต่างๆที่ต้องการเช่นฐานข้อมูลไฟล์คอนโซล UNIX Syslog เป็นต้น

แผนภาพเสมือนต่อไปนี้แสดงส่วนประกอบของกรอบงาน log4J:

สนับสนุนวัตถุ

มีวัตถุสำคัญอื่น ๆ ในกรอบงาน log4j ที่มีบทบาทสำคัญในกรอบการบันทึก:

วัตถุระดับ

วัตถุระดับกำหนดรายละเอียดและลำดับความสำคัญของข้อมูลการบันทึกใด ๆ มีการบันทึกเจ็ดระดับที่กำหนดไว้ภายใน API: OFF, DEBUG, INFO, ERROR, WARN, FATAL และ ALL

กรองวัตถุ

อ็อบเจ็กต์ตัวกรองใช้เพื่อวิเคราะห์ข้อมูลการบันทึกและทำการตัดสินใจเพิ่มเติมว่าข้อมูลนั้นควรถูกบันทึกหรือไม่

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

ObjectRenderer

อ็อบเจ็กต์ ObjectRenderer มีความเชี่ยวชาญในการจัดเตรียมการแสดงสตริงของอ็อบเจ็กต์ต่าง ๆ ที่ส่งผ่านไปยังเฟรมเวิร์กการบันทึก วัตถุนี้ถูกใช้โดยอ็อบเจ็กต์ Layout เพื่อเตรียมข้อมูลการบันทึกขั้นสุดท้าย

LogManager

อ็อบเจ็กต์ LogManager จัดการเฟรมเวิร์กการบันทึก มีหน้าที่อ่านพารามิเตอร์คอนฟิกูเรชันเริ่มต้นจากไฟล์คอนฟิกูเรชันทั้งระบบหรือคลาสคอนฟิกูเรชัน