मैं SLF4J (के साथ) का उपयोग करने की कोशिश कर रहा हूं log4j पहली बार बाइंडिंग के ) ।
मैं 3 अलग-अलग नामांकित लोगों को कॉन्फ़िगर करना चाहूंगा जिन्हें एक लॉगरफैक्ट्री द्वारा लौटाया जा सकता है जो विभिन्न स्तरों पर लॉग इन करेंगे और संदेशों को अलग-अलग ऐपेंडर्स पर धकेलेंगे:
- लकड़हारा 1 "FileLogger" DEBUG में प्रवेश करता है और करने के लिए अपील करता है
DailyRollingFileAppender - लकड़हारा 2 "TracingLogger" TRACE + को लॉग करता है और एक को जोड़ता है
JmsAppender - लकड़हारा 3 "ErrorLogger" ERROR + को लॉग करता है और एक अलग करता है
JmsAppender
इसके अलावा मैं उन्हें प्रोग्रामेटिक रूप से कॉन्फ़िगर करना चाहता हूं (जावा में, एक्सएमएल या एक log4j.propertiesफाइल के विपरीत )।
मुझे लगता है कि, आम तौर पर, मैं इन Loggerएस को कुछ बूटस्ट्रैपिंग कोड में एक init()विधि की तरह परिभाषित करता हूं । हालाँकि, क्योंकि मैं उपयोग करना चाहता हूं, इसलिए मैं slf4j-log4jअसमंजस में हूं कि मैं लॉगर को कहां तक परिभाषित कर सकता हूं और उन्हें क्लासपाथ को उपलब्ध करा सकता हूं।
मेरा मानना है कि यह SLF4J के अंतर्निहित उद्देश्य (एक पहलू के रूप में) का उल्लंघन है, क्योंकि SLF4J API का उपयोग करने वाला मेरा कोड कभी नहीं जान पाएगा कि ये लॉगर मौजूद हैं। मेरा कोड सिर्फ SLF4J API के लिए सामान्य कॉल करता है, जो तब उन्हें log4j लॉगर्स पर देता है जो इसे क्लासपाथ पर पाता है।
लेकिन मैं उन लॉग 4j लॉगर को क्लासपाथ पर कैसे कॉन्फ़िगर करूं ... जावा में ?!