हाँ तुम्हें करना चाहिए। SLF4J की तरह एक लॉगिंग मुखौटा का उपयोग करने से आपको अपने उपयोगकर्ताओं को एक विशेष लॉगिंग ढांचे के बोझ के बिना लचीलापन मिलता है।
व्यापक रूप से वितरित घटकों और पुस्तकालयों के लेखक घटक या पुस्तकालय के अंतिम-उपयोगकर्ता पर लॉगिंग ढांचे को लागू करने से बचने के लिए SLF4J इंटरफ़ेस के विरुद्ध कोड कर सकते हैं। इस प्रकार, एंड-यूज़र क्लासपाथ पर संबंधित slf4j बाइंडिंग को सम्मिलित करके तैनाती के समय वांछित लॉगिंग फ्रेमवर्क चुन सकता है, जिसे बाद में क्लास के पथ पर किसी अन्य के साथ मौजूदा बाइंडिंग को बदलकर और एप्लिकेशन को पुनरारंभ करके बदला जा सकता है। यह दृष्टिकोण सरल और बहुत मजबूत साबित हुआ है।
इसके अलावा, यदि आपके उपयोगकर्ताओं में SLF4J जार शामिल नहीं है ( उपयोगकर्ता के गाइड से ):
SLF4J संस्करण 1.6.0 के रूप में, यदि कोई बंधन वर्ग पथ पर नहीं पाया जाता है, तो slf4j-api सभी लॉग अनुरोधों को खारिज करने वाले एक नो-ऑपरेशन कार्यान्वयन के लिए डिफ़ॉल्ट होगा।
यदि आप लॉगिंग के प्रदर्शन निहितार्थ के बारे में चिंतित हैं, तो इस SLF4J FAQ प्रविष्टि की जाँच करें । विचार यह है कि आप स्ट्रिंग इनलाइन में जोड़ने के बजाय लॉग्स स्टेटमेंट प्रदान करते हैं:
निम्न दो पंक्तियाँ सटीक समान आउटपुट प्राप्त करेंगी। हालाँकि, दूसरा फ़ॉर्म अक्षम लॉगिंग स्टेटमेंट के मामले में, कम से कम 30 के कारक द्वारा पहले फॉर्म को बेहतर बनाएगा।
logger.debug("The new entry is "+entry+".");
logger.debug("The new entry is {}.", entry);
SLF4J अभी तक एक और लॉगिंग मुखौटा है?
SLF4J वैचारिक रूप से JCL के समान है। जैसे, यह एक और लॉगिंग मुखौटा के रूप में सोचा जा सकता है। हालांकि, SLF4J डिजाइन में बहुत सरल है और यकीनन अधिक मजबूत है। संक्षेप में, SLF4J प्लेग [जकार्ता कॉमन्स लॉगिंग] प्लेग मुद्दों से बचते हैं।