2009-04-15 13 views
27

नेटबीन्स सोचते हैं कि Logger.getLogger (this.getClass()। GetName())। लॉग (स्तर। [...] कैच ब्लॉक में बयान। अब मुझे पसंद है उन्हें सभी को एक फ़ाइल (और कंसोल करने के लिए) इंगित करने के लिए।डिफ़ॉल्ट रूप से फ़ाइल करने के लिए जावा लॉगर आउटपुट कैसे प्राप्त करें

प्रत्येक लॉगिंग ट्यूटोरियल और ऐसा केवल मुझे बताता है कि फ़ाइल में आउटपुट करने के लिए एक विशिष्ट लॉगर कैसे प्राप्त करें, लेकिन मुझे लगता है कि प्रत्येक स्वचालित रूप से जेनरेट करने से बेहतर तरीका है लॉगिंग कथन? किसी प्रकार के रूट लॉगर या कुछ के लिए हैंडलर सेट करना?

+2

आईडीई कैच ब्लॉक उत्पन्न कर रहा है जो अपवाद "खाएं"? नाली का कीड़ा! यह बहुत समझाता है। – erickson

उत्तर

39

मैं सिर्फ स्टार्टअप पर निम्नलिखित जोड़ें

Handler handler = new FileHandler("test.log", LOG_SIZE, LOG_ROTATION_COUNT); 
Logger.getLogger("").addHandler(handler); 

आप LOG_SIZE और LOG_ROTATION_COUNT

आप सूट करने के लिए लॉगिंग स्तर को समायोजित आवश्यकता हो सकती है के लिए अपने स्वयं के मान निर्दिष्ट कर सकते हैं।

+0

के लिए कोड जेनरेट करता है। ऐसा लगता है कि मैं जिस चीज के बाद था। – Bloodboiler

+1

ऐसा करने से मुझे सिर्फ "शून्य को संदर्भित नहीं किया जा सकता" – Dan

2

आपको यह परिभाषित करना होगा कि लॉगर कॉन्फ़िगरेशन फ़ाइल में लॉग कहां लिख रहा है। उदाहरण के लिए, यदि आप log4j का उपयोग करते हैं, तो log4j.xml (या log4j.properties) फ़ाइल में ऐसी जानकारी होगी।

उदाहरण के लिए, यहाँ एक सरल log4j.xml फ़ाइल है कि एक फ़ाइल (मेरी-app.log) में सीधे लॉग करता है और कंसोल में है:

<?xml version="1.0" encoding="UTF-8"?> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="rolling" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="my-app.log" /> 
     <param name="DatePattern" value=".yyyy-MM-dd" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
       value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [IP=%X{ipAddress}] [user=%X{user}] %m%n" /> 
     </layout> 
    </appender> 

    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
       value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [user=%X{user}] %m%n" /> 
     </layout> 
    </appender> 

    <root> 
     <priority value="info" /> 
     <appender-ref ref="console" /> 
     <appender-ref ref="rolling" /> 
    </root> 

</log4j:configuration> 
+4

मुझे टैग से लगता है कि प्रश्नकर्ता log4j –

+2

के बजाय java.util.logging में कक्षाओं का उपयोग कर रहा है। वह log4j का उपयोग नहीं कर रहा है: netbeans java.util.logging –

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