मैं बहुत log4j करने के लिए नया हूँ। मैं अपने लॉग फ़ाइल में अपवाद स्टैक ट्रेस को दिखाने के लिए इस तरह के रूपConvert e.printStackTrace() log4j का उपयोग करने के बजाय
java.lang.IllegalArgumentException: nodeRef is a mandatory parameter
at org.alfresco.util.ParameterCheck.mandatory(ParameterCheck.java:42)
ये अपवाद सीधे लिखा जाता है सांत्वना देने नहीं करना चाहती है कि
try {
// something
} catch(Exception e) {
StringWriter stack = new StringWriter();
e.printStackTrace(new PrintWriter(stack));
logger.debug("Caught exception; decorating with appropriate status template : " + stack.toString());
}
तरह e.printStackTrace()
का उपयोग करके मैं अब हूँ एक खुला स्रोत अनुरूपण प्रोजेक्ट, मेरे द्वारा अपने सभी कार्यक्रमों को नहीं लिख रहा है। तो यह जावा फ़ाइलों के सभी में e.printStackTrace();
दूर करने के लिए असंभव है।
जहाँ तक मुझे पता है, लॉग इन log4j
द्वारा मुद्रित किया गया है लॉग के साथ लॉग 4j त्रुटि स्तर जैसे जानकारी, डीबग, चेतावनी का उपयोग करके कॉन्फ़िगर किया जा सकता है। लेकिन सीधे कंसोल या फ़ाइल को लिखने के बारे में कैसे?
मैं log4j कैसे कॉन्फ़िगर एकमात्र अपवाद स्टैकट्रेस मुद्रित करने के लिए नहीं कर सकते हैं लेकिन अन्य जानकारी दिखाने? क्या इसे हल करने का कोई तरीका है?
आपको पहले ** log4j का उपयोग करना होगा। कैच स्टेटमेंट जो आप दिखाते हैं) log4j का उपयोग नहीं करता है; बी) कहीं भी कुछ भी प्रिंट नहीं करता है। यह केवल स्टैकट्रिस के साथ एक स्ट्रिंगवाइटर भरता है। –
मैंने अपना कोड बदल दिया। मेरे नमूना दोनों e.printStackTrace() और logger.debug का उपयोग करता है()। यह मेरे द्वारा लिखा नहीं है। मेरी परियोजना उस जार फ़ाइल का उपयोग करती है जिसका संलग्न स्रोत इस तरह दिखाया गया है। – swemon
मैं सिस्टम.एर को प्रतिस्थापित करने के लिए प्रिंटस्ट्रीम बनाने के लिए क्या करूंगा जो लॉग 4j पर जो कुछ भी प्राप्त करता है उसे लिखता है। इस तरह आप System.out या System.err का उपयोग किसी भी तरह से कर सकते हैं और यह वास्तव में log4j का उपयोग करता है। ;) –