कॉन्फ़िगर करना मैं पहली बार SLF4J (log4j
बाइंडिंग के साथ) का उपयोग करने की कोशिश कर रहा हूं।Log4j लॉगर्स को प्रोग्रामेटिक रूप से
- लॉगर 1 "FileLogger" लॉग डीबग और
DailyRollingFileAppender
को संलग्न कर देता है:मैं 3 अलग नामित संग्रह करने वालों कि एक LoggerFactory जो विभिन्न स्तरों लॉग इन करें और विभिन्न appenders के लिए पुश संदेशों का होगा द्वारा दिया जा सकता है कॉन्फ़िगर करने के लिए चाहते हैं
- लॉगर 2 "TracingLogger" लॉग ट्रेस + और एक
JmsAppender
- लॉगर को संलग्न कर देता है 3 "ErrorLogger" लॉग त्रुटि + और एक अलग
JmsAppender
इसके अलावा मैं चाहता हूं कि वे प्रोग्रामेटिक रूप से कॉन्फ़िगर करें (जावा में, एक्सएमएल या log4j.properties
फ़ाइल के विपरीत)।
मुझे लगता है कि, आमतौर पर, मैं init()
विधि जैसे कुछ बूटस्ट्रैपिंग कोड में कहीं Logger
एस को परिभाषित करता हूं। हालांकि, क्योंकि मैं slf4j-log4j
का उपयोग करना चाहता हूं, मैं इस बारे में उलझन में हूं कि मैं लॉगर्स को परिभाषित कर सकता हूं और उन्हें कक्षा के लिए उपलब्ध करा सकता हूं।
मुझे विश्वास नहीं है यह एसएलएफ 4 जे के अंतर्निहित उद्देश्य (एक मुखौटा के रूप में) का उल्लंघन है, क्योंकि एसएलएफ 4 जे एपीआई का उपयोग करने वाला मेरा कोड कभी नहीं जानता कि ये लॉगर्स मौजूद हैं। मेरा कोड एसएलएफ 4 जे एपीआई को सामान्य कॉल करता है, जो उसके बाद उन्हें क्लासपाथ पर लॉग 4j लॉगर्स पर भेजता है।
लेकिन मैं क्लासपाथ पर उन log4j लॉगर्स को कैसे कॉन्फ़िगर कर सकता हूं ... जावा में ?!
http://stackoverflow.com/questions/1666121/programmatically-creating-different -log-files-use-log4j – skaffman
log4j 1.x के लिए 2.x के लिए नीचे दिए गए स्वीकृत उत्तर का उपयोग करें https://logging.apache.org/log4j/2.x/manual/customconfig.html – earcam