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 จัดการเฟรมเวิร์กการบันทึก มีหน้าที่อ่านพารามิเตอร์คอนฟิกูเรชันเริ่มต้นจากไฟล์คอนฟิกูเรชันทั้งระบบหรือคลาสคอนฟิกูเรชัน