SLF4J और लॉगबैक के साथ स्प्रिंग बूट में लॉगिंग को कॉन्फ़िगर करना
स्प्रिंग बूट अपने लॉगिंग इंटरफ़ेस के रूप में जावा ( SLF4J ) फ्रेमवर्क के लिए सिंपल लॉगिंग फेकाडे का उपयोग करता है । SLF4J एक सामान्य लॉगिंग API प्रदान करता है जिसे लॉगबैक, Log4j2 और java.util.logging जैसे विभिन्न लॉगिंग फ्रेमवर्क द्वारा लागू किया जा सकता है।
TRACE, DEBUG, INFO, WARN, और ERROR सहित कई लॉगिंग स्तर हैं , जिनका उपयोग लॉग किए जाने वाले विवरण के स्तर को निर्दिष्ट करने के लिए किया जा सकता है।

- TRACE: यह सबसे विस्तृत लॉगिंग स्तर है, और यह ठीक-ठाक विवरण जैसे कि विधि कॉल, चर मान और निष्पादन प्रवाह को कैप्चर करता है। TRACE लॉगिंग का उपयोग जटिल समस्याओं के निवारण के लिए किया जाना चाहिए।
- डिबग: यह एप्लिकेशन व्यवहार के बारे में जानकारी प्राप्त करता है जो डिबगिंग मुद्दों के लिए सहायक हो सकता है। यह स्तर विकास और परीक्षण परिवेशों के लिए उपयुक्त है, जहां एप्लिकेशन के व्यवहार के बारे में विस्तृत जानकारी होना महत्वपूर्ण है।
- सूचना: इस स्तर का उपयोग महत्वपूर्ण अनुप्रयोग घटनाओं, जैसे स्टार्टअप और शटडाउन संदेशों, सफल उपयोगकर्ता लॉगिन और प्रमुख कॉन्फ़िगरेशन परिवर्तनों को कैप्चर करने के लिए किया जाता है। इस स्तर का उपयोग उत्पादन वातावरण में ऐसी जानकारी प्राप्त करने के लिए किया जाना चाहिए जो मुद्दों के मूल कारण की पहचान करने में मदद कर सके।
- चेतावनी: इस स्तर का उपयोग संभावित रूप से हानिकारक घटनाओं को कैप्चर करने के लिए किया जाता है, जैसे विफल लॉगिन प्रयास या गलत कॉन्फ़िगरेशन सेटिंग्स। इस स्तर का उपयोग उन घटनाओं को पकड़ने के लिए किया जाना चाहिए जिन पर ध्यान देने की आवश्यकता है लेकिन जरूरी नहीं कि वे एक गंभीर समस्या का संकेत दें।
- ERROR: इस स्तर का उपयोग उन महत्वपूर्ण त्रुटियों को पकड़ने के लिए किया जाता है जिन पर तत्काल ध्यान देने की आवश्यकता होती है, जैसे एप्लिकेशन क्रैश या डेटा भ्रष्टाचार।
लॉगिंग को सक्षम करने के लिए, org.slf4j से लॉगर और लॉगरफैक्टरी आयात करें।

यदि application.properties में कोई कॉन्फ़िगरेशन सेट नहीं है, तो लॉग स्तर INFO के लिए डिफ़ॉल्ट होगा।
आउटपुट:

DEBUG और TRACE संदेशों को प्रदर्शित नहीं किया गया क्योंकि एप्लिकेशन का लॉग स्तर INFO पर सेट है, जिसका प्राथमिकता स्तर दोनों से अधिक है।
यदि लॉग स्तर ERROR पर सेट किया गया था तो केवल त्रुटि संदेश प्रदर्शित होगा क्योंकि यह 5 अंतर्निर्मित स्तरों का उच्चतम लॉग स्तर है।


हम application.properties फ़ाइल में निम्न कॉन्फ़िगरेशन के साथ लॉगिंग पैटर्न को अनुकूलित कर सकते हैं।
आउटपुट:

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

कंसोलएपेंडर कंसोलएपेंडर के अंदर दिए गए पैटर्न के आधार पर आउटपुट लॉग करता है।
में RollingFileAppender
, रोलिंग नीति के आधार पर लॉग फ़ाइल को संग्रहीत करने के लिए एक नई फ़ाइल बनाएगा। रोलिंग नीति के अंदर हम फ़ाइल नाम पैटर्न, फ़ाइल का अधिकतम आकार, सभी संग्रह फ़ाइलों का कुल आकार और फ़ाइल रखने के लिए दिन निर्दिष्ट कर रहे हैं।
यदि आप वसंत सुरक्षा प्रमाणीकरण और प्राधिकरण सीखना चाहते हैं:
2023 में जावा डेवलपर्स के लिए स्प्रिंग बूट के साथ स्प्रिंग सुरक्षा और OAuth2 सीखने के लिए शीर्ष 10 पाठ्यक्रमइन लिंक्स को देखें: स्प्रिंग बूट के साथ स्प्रिंग सिक्योरिटी रोल आधारित एक्सेस और JWT के साथ स्प्रिंग सिक्योरिटी ऑथेंटिकेशन और ऑथराइजेशन