log4j - वास्तुकला

log4j एपीआई एक स्तरित वास्तुकला का अनुसरण करता है जहां प्रत्येक परत विभिन्न कार्यों को करने के लिए अलग-अलग वस्तुएं प्रदान करती है। यह स्तरित वास्तुकला डिजाइन को लचीला और भविष्य में विस्तारित करने में आसान बनाता है।

Log4j ढांचे के साथ दो प्रकार की वस्तुएं उपलब्ध हैं।

  • Core Objects:ये ढांचे की अनिवार्य वस्तुएं हैं। उन्हें रूपरेखा का उपयोग करना आवश्यक है।

  • Support Objects:ये फ्रेमवर्क की वैकल्पिक वस्तुएं हैं। वे अतिरिक्त लेकिन महत्वपूर्ण कार्यों को करने के लिए मुख्य वस्तुओं का समर्थन करते हैं।

कोर ऑब्जेक्ट्स

मुख्य वस्तुओं में निम्नलिखित प्रकार की वस्तुएँ शामिल हैं -

लकड़हारा वस्तु

शीर्ष-स्तरीय परत लकड़हारा है जो लकड़हारा वस्तु प्रदान करता है। लॉगर ऑब्जेक्ट लॉगिंग जानकारी को कैप्चर करने के लिए जिम्मेदार है और वे एक नेमस्पेस पदानुक्रम में संग्रहीत हैं।

लेआउट वस्तु

लेआउट परत उन वस्तुओं को प्रदान करती है जो विभिन्न शैलियों में लॉगिंग जानकारी को प्रारूपित करने के लिए उपयोग की जाती हैं। यह लॉगिंग जानकारी को प्रकाशित करने से पहले परिशिष्ट वस्तुओं को सहायता प्रदान करता है।

लॉगिंग जानकारी को इस तरह से प्रकाशित करने में लेआउट ऑब्जेक्ट एक महत्वपूर्ण भूमिका निभाते हैं जो मानव-पठनीय और पुन: प्रयोज्य है।

परिशिष्ट वस्तु

यह एक निचले स्तर की परत है जो परिशिष्ट वस्तुएं प्रदान करती है। Appender ऑब्जेक्ट विभिन्न पसंदीदा गंतव्यों जैसे डेटाबेस, फ़ाइल, कंसोल, UNIX Syslog, आदि के लिए लॉगिंग जानकारी प्रकाशित करने के लिए ज़िम्मेदार है।

निम्नलिखित वर्चुअल आरेख log4J ढांचे के घटकों को दर्शाता है:

समर्थन वस्तुओं

Log4j फ्रेमवर्क में अन्य महत्वपूर्ण वस्तुएं हैं जो लॉगिंग फ्रेमवर्क में महत्वपूर्ण भूमिका निभाती हैं:

स्तर की वस्तु

लेवल ऑब्जेक्ट किसी भी लॉगिंग जानकारी की ग्रैन्युलैरिटी और प्राथमिकता को परिभाषित करता है। API के भीतर लॉगिंग के सात स्तर परिभाषित हैं: OFF, DEBUG, INFO, ERROR, WARN, FATAL, और ALL।

फ़िल्टर वस्तु

फ़िल्टर ऑब्जेक्ट का उपयोग लॉगिंग जानकारी का विश्लेषण करने और उस जानकारी को लॉग इन किया जाना चाहिए या नहीं इस पर आगे निर्णय लेने के लिए किया जाता है।

एक परिशिष्ट वस्तुओं में उनके साथ जुड़े कई फ़िल्टर ऑब्जेक्ट हो सकते हैं। यदि लॉगिंग जानकारी को किसी विशेष परिशिष्ट वस्तु में पास किया जाता है, तो उस परिशिष्ट से जुड़ी सभी फ़िल्टर ऑब्जेक्ट्स को संलग्न गंतव्य पर प्रकाशित होने से पहले लॉगिंग जानकारी को अनुमोदित करने की आवश्यकता होती है।

ObjectRenderer

ObjectRenderer ऑब्जेक्ट लॉगिंग ढांचे में पारित विभिन्न वस्तुओं के स्ट्रिंग प्रतिनिधित्व प्रदान करने में विशिष्ट है। इस ऑब्जेक्ट का उपयोग लेआउट ऑब्जेक्ट द्वारा अंतिम लॉगिंग जानकारी तैयार करने के लिए किया जाता है।

LogManager

LogManager ऑब्जेक्ट लॉगिंग ढांचे का प्रबंधन करता है। यह सिस्टम-वाइड कॉन्फ़िगरेशन फ़ाइल या कॉन्फ़िगरेशन क्लास से प्रारंभिक कॉन्फ़िगरेशन पैरामीटर पढ़ने के लिए ज़िम्मेदार है।