2012-04-11 5 views
5

मैं विभिन्न स्तरों पर, लेकिन अभी तक मैं प्रवेश स्तर को अलग करने के लिए एक तरह से नहीं मिल सका आधारित 'अलग' appenders बनाने के लिए कोशिश कर रहा हूँ ....log4j में प्रवेश स्तर के आधार पर अलग अलग लॉग बनाना

<category name="com.sample" additivity="false"> 
    <priority value="INFO" /> 
    <appender-ref ref="AllAsync"/> 
    <appender-ref ref="ConsoleAppender"/> 
    </category> 

मुझे केवल INFO प्राथमिकता वाले लॉग को जोड़ने के लिए सक्षम होने का एक तरीका चाहिए। चूंकि आईएनएफओ स्तर लॉगिंग भी DEBUG चिह्नित लॉगर्स पर रखता है ... यह मेरी मदद नहीं कर रहा है।

log4j:ERROR Attempted to append to closed appender named [AllAsync]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
+1

आप लॉग फ़ाइल में होने से स्तर X से कम कुछ भी रोकने के लिए थ्रेसहोल्ड का उपयोग कर सकते हैं, लेकिन मुझे विश्वास नहीं है कि लॉग फ़ाइल में होने से स्तर X से अधिक लॉगिंग रोकने का कोई तरीका है। –

उत्तर

2

आप सटीक लॉग स्तर के आधार पर फ़िल्टर कर सकते हैं:

 <category name="com.sample" additivity="false"> 
      <priority value="INFO" /> 
      <appender-ref ref="AllAsync"/> 
      <appender-ref ref="ConsoleAppender"/> 
      </category> 

    <category name="com.sample" additivity="false"> 
     <priority value="DEBUG" /> 
     <appender-ref ref="AllAsync"/> 
     <appender-ref ref="ConsoleAppender"/> 
     </category> 

यहाँ मैं की तरह त्रुटियों कुछ हो रही है:

एक और बात 'एक ही' पैकेज मैं अलग प्रवेश appenders को परिभाषित नहीं कर सकता है के लिए है log4j Faq और विकी के अनुसार LevelMatchFilter का उपयोग करना।

<filter class="org.apache.log4j.varia.LevelMatchFilter"> 
     <param name="LevelToMatch" value="info"/> 
     <param name="AcceptOnMatch" value="true"/> 
</filter> 

उदाहरण here

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