का उपयोग करने के लिए फोर्स slf4j फोर्स करें क्या विशिष्ट लॉगिंग प्रदाता (मेरे मामले में लॉगबैक) का उपयोग करने के लिए slf4j को मजबूर करने के लिए वैसे भी है? उनके डॉक्स में के रूप में:लॉगबैक
एकाधिक बाइंडिंग वर्ग पथ पर पाए गए
SLF4J एपीआई एक और एक समय में केवल एक अंतर्निहित प्रवेश ढांचे के साथ बाध्य करने के लिए desinged है। यदि कक्षा पथ पर एक से अधिक बाध्यकारी मौजूद है, तो SLF4J उन बाधाओं के स्थान को सूचीबद्ध करने, एक चेतावनी उत्सर्जित करेगा। जब कक्षा पथ पर एकाधिक बाइंडिंग उपलब्ध हैं, तो एक का चयन करें और केवल एक बाध्यकारी जिसे आप उपयोग करना चाहते हैं, और अन्य बाइंडिंग को हटा दें। उदाहरण के लिए, यदि आपके पास क्लास पथ पर slf4j-> simple-1.6.6.jar और slf4j-nop-1.6.6.jar दोनों हैं और आप nop (> no-operation) बाध्यकारी का उपयोग करना चाहते हैं, तो slf4j- वर्ग पथ से सरल 1.6.6.jar। यदि सुपरफ्लस बाइंडिंग को हटाना संभव नहीं है, तो एसएलएफ 4 जे अभी भी एक लॉगिंग फ्रेमवर्क/कार्यान्वयन के साथ बाध्य होगा। संस्करण 1.6.6 के रूप में, एसएलएफ 4 जे फ्रेमवर्क/कार्यान्वयन वर्ग का नाम देगा जो वास्तव में बाध्य है।
नोट एसएलएफ 4 जे द्वारा उत्सर्जित चेतावनी बस एक चेतावनी है।
मेरे मामले में मैं log4j.jar
, slf4j-log4j12.jar
, log4j-over-slf4j.jar
और classpath में सभी logback जार की है। मुझे पता है कि slf4j-log4j12.jar
और log4j-over-slf4j.jar
एक साथ होने में त्रुटि है, लेकिन मेरी परियोजना बहुत बड़ी है, और मैवेन निर्भरता को ढूंढना और बहिष्कृत करना हमेशा आसान नहीं होता है। इस मामले में slf4j ने भी किसी भी चेतावनी को मुद्रित नहीं किया, क्योंकि हम केवल लॉगबैक कॉन्फ़िगरेशन का उपयोग करते हैं। इस जार नरक को समझने में मुझे एक दिन लगा।
मैं चाहता हूं कि मैं jVM तर्क के माध्यम से slf4j उपयोग लॉगबैक को मजबूर करना चाहता हूं, उदाहरण के लिए, इसलिए यह चेतावनियां प्रिंट कर सकता है और मैं भविष्य में जार को बाहर कर सकता हूं।
यह मेरे लिए एक दया – madhead