2009-07-07 11 views
9

मैं एक ऐप में log4j का उपयोग कर रहा हूं जिसे मैं अंततः टॉमकैट/जेबॉस के अंदर चलाने के लिए विकसित कर रहा हूं, लेकिन अभी मैं इसे ग्रहण के अंदर से चला रहा हूं। मैंने इसे log4j.xml फ़ाइल का उपयोग करके एक ConsoleAppender को लिखने के लिए कॉन्फ़िगर किया है और इसे सिस्टम प्रॉपर्टी के रूप में पास कर दिया है, और मेरे सभी लॉगिंग आउटपुट काम करता है।अनावश्यक log4j सेटअप आउटपुट को हटा रहा है

समस्या यह है कि log4j बूटस्ट्रैप/स्टार्टअप कचरे का एक गुच्छा थूकता है जिसे मुझे वास्तव में देखने की आवश्यकता नहीं है (या चाहते हैं)। उदाहरण के लिए:

log4j: Retreiving an instance of org.apache.log4j.Logger. 
log4j: Setting [CoherenceMonitor] additivity to [false]. 
log4j: Level value for CoherenceMonitor is [DEBUG]. 
log4j: Desired Level sub-class: [org.apache.log4j.Level] 
log4j: CoherenceMonitor level set to DEBUG 
log4j: Class name: [org.apache.log4j.ConsoleAppender] 
log4j: Setting property [target] to [System.out]. 
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout" 
log4j: Setting property [conversionPattern] to [%-5p %m%n]. 
log4j: Adding appender named [console] to category [CoherenceMonitor]. 

मैं इस हर बार मैं अपने कार्यक्रम चलाने के बारे में 20 लाइनों मिलता है, और यह सिर्फ शोर है कि लॉग डेटा मैं वास्तव में के बारे में परवाह धुंधला कर रहे हैं। मैं जो करना चाहता हूं वह इस आउटपुट को दबाएं (सबकुछ जो "log4j:" से शुरू होता है) और केवल अपने लॉगिंग स्टेटमेंट से आउटपुट शामिल करें।

मैंने Google और मेरे सहकर्मियों के माध्यम से जो भी खोजा है, उसे मैंने कोशिश की है, जिसमें नीचे दिखाए गए org.apache श्रेणी के लिए प्राथमिकता मूल्य निर्धारित करना शामिल है। (प्राथमिकता मैं सेट के बावजूद, मैं अभी भी उत्पादन मिलता है।)

<category name="org.apache"> 
    <priority value="FATAL"/> 
</category> 

मैं log4j विन्यास पर सुंदर नौसिखिया हूँ, और मेरा बहुत सरल है। मेरे पास केवल एक एपेंडर, एक लॉगर, और यह एक श्रेणी है। Log4j प्राप्त करने पर कोई मदद केवल सेटअप करने के दौरान अपना मुंह बंद रखने के लिए बहुत सराहना की जाएगी! :-)

उत्तर

14

यह लॉगर से डीबग की तरह दिखता है। यदि आप एक्सएमएल कॉन्फ़िगरेशन का उपयोग कर रहे हैं तो ऐसा लगता है:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

डीबग को गलत पर बदलें।

+0

उम ... वाह। मैंने सोचा कि मैंने सबकुछ जांच लिया है, मुझे नहीं पता कि मैंने कभी इसे कैसे याद किया। यह वही है जो यह था। हालांकि, मुझे कुछ हद तक बेहतर लगता है कि कुछ सहकर्मियों ने मेरी log4j.xml पर देखा, और उन्होंने इसे भी नहीं देखा। धन्यवाद! –

+0

मैंने आधे दिन लॉगिंग से लड़ने में बिताया था - अन्यथा मैं कभी भी नहीं जानता था :) – javamonkey79

3
पता चल सके कि आपके log4j.xml debug="true" विशेषता है, यह भी सुनिश्चित करें कि आप log4j.debug प्रणाली पैरामीटर सेट की जरूरत नहीं है कि (ग्रहण में इस -Dlog4j.debug के मूल्य के साथ भागो विन्यास JVM के रूप में तर्क में दिखाई देता है) बनाने के अलावा

+0

भी एक उत्कृष्ट सुझाव। यद्यपि मेरी समस्या log4j.xml में थी, लेकिन यह जानना बहुत उपयोगी है कि यह देखने के लिए कि समस्या केवल ग्रहण में ही होती है या नहीं। धन्यवाद! –

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