2012-03-24 10 views
12

मैं logback साथ slf4j लॉगिंग उपयोग कर रहा हूँ और मेरे ऐप की शुरुआत में मैंने लिखाLoggingHandler के आउटपुट को देखने के लिए नेटटी लॉगर फैक्ट्री को कैसे कॉन्फ़िगर करें?

InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory()); 

तो मैं पाइप लाइन एक नया LoggingHandler(InternalLogLevel.DEBUG) उदाहरण के लिए जोड़ा। दुर्भाग्यवश यह अभी भी कुछ भी लॉग नहीं करता है, मैं डीबग कर रहा था और डीबग स्तर समस्या है, बस लॉगिंग को स्वयं छोड़ देता है।

इस LoggingHandler पर काम करने के लिए मुझे कैसे सेटअप करना चाहिए?

+0

क्या आप मुझे कुछ और विवरण दे सकते हैं कि DEBUG के साथ समस्या क्या है? –

+0

मुझे कोई कारण नहीं दिख रहा है कि DEBUG स्तर पर लॉग इन क्यों नहीं करेगा। क्या आपके द्वारा DEBUG स्तर पर लॉगिंग करना काम करता है? यदि हां, तो क्या आप हमें विशिष्ट कोड प्रदान कर सकते हैं जो समस्या को पुन: उत्पन्न करता है? – trustin

+0

क्या आपके पास 'slf4j-api.jar' है और आपके प्रोजेक्ट के क्लासपाथ में' sl4j' (जैसे 'लॉगबैक') का कुछ कार्यान्वयन है? आपको कार्यान्वयन विशिष्ट कॉन्फ़िगरेशन फ़ाइल (जैसे 'लॉगबैक' के लिए 'logback.xml') में लॉग स्तर को कॉन्फ़िगर करने की आवश्यकता होगी। –

उत्तर

10

मैंने एक छोटा सा उदाहरण किया है, जो काम करता है - मैंने इसे gist on github पर रखा है। यह slf4j के बैकएंड के रूप में लॉगबैक का उपयोग करता है। जिन क्षणों पर ध्यान दिया जाना चाहिए वे हैं:

  • InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory()); सीधे आपके कार्यक्रम के प्रवेश बिंदु पर निष्पादित किया जाना चाहिए। कभी-कभी यह "प्रवेश बिंदु" निर्धारित करना बहुत कठिन हो सकता है।
  • slf4j बैकएंड की उचित कॉन्फ़िगरेशन। चूंकि slf4j केवल एक रैपर है, यह कॉन्फ़िगरेशन से बिल्कुल निपटता नहीं है - यह log4j, logback या java.util.logging (या शायद कुछ कस्टम बैकएंड के लिए विशिष्ट है - मैंने कस्टम "जावा कॉमन्स लॉगिंग" कॉन्फ़िगरेटर के साथ भारी काम किया है, इसलिए वास्तव में कुछ वास्तव में इस्तेमाल किया जा सकता)
  • भी LoggingHandler बिना आप org.jboss.netty.channel.socket.nio.SelectorUtil के स्थिर प्रारंभकर्ता से दो डीबग संदेश दिखाई देगा (Netty संस्करण 3.6.0.Final) के साथ:

    11:54:00.959 [main] DEBUG o.j.n.c.socket.nio.SelectorUtil - Using select timeout of 500 
    11:54:00.962 [main] DEBUG o.j.n.c.socket.nio.SelectorUtil - Epoll-bug workaround enabled = false 
    
+0

नेटटी हालांकि मेरे रूट लॉगर का उपयोग नहीं कर रहा है, मेरे पास निम्न है: 10: 36: 40,447 | - लॉगर में वॉर्न [io.netty.channel.MultithreadEventLoopGroup] - लॉगर [io.netty) के संदर्भ में कोई परिशिष्ट संदर्भ [डिफ़ॉल्ट] में मौजूद नहीं है। channel.MultithreadEventLoopGroup]। – Edmondo1984

+0

यह समाधान मेरे लिए काम करता है। – JBT

संबंधित मुद्दे

 संबंधित मुद्दे