2012-10-15 27 views
5

मुझे लॉगबैक के साथ कुछ विशिष्ट समस्या है। हम log4j से लॉगबैक में माइग्रेट हो गए हैं और सभी ठीक दिखते हैं, लेकिन हमारे पास अपवाद क्लास मल्टीकॉज़ अपवाद है। जैसा कि आपने अनुमान लगाया है - इसमें एक से अधिक कारण अपवाद हो सकते हैं, इसलिए समस्या यह है कि: मैं सभी कारणों को देखने के लिए मैन्युअल रूप से स्टैकट्रैक को प्रारूपित नहीं कर सकता।लॉगबैक - अपवादों के लिए कस्टम आउटपुट

यह क्यों काम कर रहा था। Log4j प्रयुक्त विधि printStackTrace() और आप इसे MultiCauseException में ओवरराइड कर सकते हैं और समस्या समाप्त हो गई है। लेकिन लॉगबैक अपने तरीके का उपयोग करता है और मुझे नहीं पता कि उन्हें कैसे बदला जाए।

मैं सभी कारणों को सही तरीके से लॉग करना चाहता हूं।

वर्ग में मैं

MultiCauseException nextInChain; // my cause 
Throwable inner; 
     // the real exception (inner.getCause() can be != null - must be logged) 

और

@Override 
    public Throwable getCause() { 
     return nextInChain; 
    } 
+0

के साथ कॉन्फ़िगर करने में सक्षम होना चाहिए आप लॉगबैक का कौन सा संस्करण उपयोग कर रहे हैं? – fglez

+0

1.0.7 - फिलहाल – Edd

+0

पर नवीनतम मैंने तय किया कि "विमान" (अब "कारण" का कारण वास्तव में कारण नहीं है)। लेकिन सवाल वास्तव में बंद नहीं है ... हाँ, मेरी अंग्रेजी भयानक है, इसके बारे में खेद है :) – Edd

उत्तर

1

है Logback कुछ Layouts कहा जाता है कि तार करने के लिए प्रारूप घटनाओं के लिए suppoesed जाता है। लेकिन मुझे अभी भी विश्वास है कि आपको इसे PatternLayout

+0

धन्यवाद। लेकिन इस मामले में मुझे स्टैंडएट लेआउट को अपने आप में बदलने के लिए कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की आवश्यकता है। और जब मैं अन्य वर्गों में अपना अपवाद जोड़ता हूं, तो मुझे फिर से परिशिष्ट संशोधित करने की आवश्यकता होती है। एक सुझाव है, लेकिन यह बेहतर होगा अगर मैं केवल MultiCauseException क्लास को संशोधित कर सकता हूं (या कुछ जोड़ सकता हूं, लेकिन एक बार) – Edd

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

  • कोई संबंधित समस्या नहीं^_^