2009-05-01 11 views
7

क्या यह केवल कंसोल में उन कथनों को प्रदर्शित करना संभव है, जिनमें कुछ शब्द हैं।केवल चयनित लॉग 4j डीबग स्टेटमेंट प्रदर्शित करें

eq के लिए:

logger.debug ("java: hello "); 
    logger.debug ("groovy: hello "); 
    logger.debug ("ruby: hello "); 

अब, कुछ विन्यास या जो कुछ भी करने से, सभी बयानों ग्रूवी साथ शुरू कर रहे हैं जो: प्रदर्शित करना चाहिए।

उत्तर

8

आप log4j StringMatchFilter जो अपाचे प्रवेश से "अतिरिक्त" पैकेज का हिस्सा है का उपयोग करना चाहते।

यहाँ एक त्वरित उदाहरण पाया online है:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="CustomAppender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="custom.log"/> 
    <param name="Append" value="true"/> 
    <param name="MaxFileSize" value="5000KB"/> 
    <param name="maxBackupIndex" value="5"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n" /> 
      </layout> 

      <filter class="org.apache.log4j.varia.StringMatchFilter"> 
        <param name="StringToMatch" value="Here is DEBUG" /> 
        <param name="AcceptOnMatch" value="true" /> 
      </filter> 

      <filter class="org.apache.log4j.varia.DenyAllFilter"/> 
    </appender> 

    <root> 
    <appender-ref ref="CustomAppender"/> 
    </root> 
</log4j:configuration> 
+0

यह दिलचस्प लगता है, क्या आप विस्तृत करेंगे? –

0

क्या अपने सीमा शुल्क स्तर

public class Groovy extends Level 

और फिर लॉग में गुण आपके विन्यास के रूप में उन स्तरों

आशा इस मदद करता है, डेविड सेट फ़ाइल बनाने के बारे में।

+0

धन्यवाद डेविड, लेकिन वास्तव में, मुझे ऐसा कुछ नहीं चाहिए। –

0

कोई अलग लॉगर्स का उपयोग कर सकता है ("जावा" संदेशों के लिए लॉगर कहें और एक "ग्रोवी" संदेशों के लिए)। प्रत्येक लॉगर के लिए Log4J कॉन्फ़िगरेशन को विभिन्न स्तरों के साथ सेट किया जा सकता है।

आप पढ़ सकते हैं और अधिक here

0

एक संदेशों को फ़िल्टर करने के लिए एक उपकरण का उपयोग कर सकता है। विंडोज के लिए आप इसे BareTail के साथ कर सकते हैं। प्रो (भुगतान) संस्करण के साथ संदेशों की फ़िल्टरिंग केवल संभव है। शायद ऐसे अन्य उपकरण भी हैं जो एक ही काम करते हैं।

0

एसएलएफ 4 जे मार्कर शायद आपके उद्देश्यों के लिए उपयुक्त हैं। org.slf4j.Loggeradmit a Marker as a first parameter में डीबग और जानकारी जैसे सभी मुद्रण विधियां। इसके अलावा, लॉगबैक-क्लासिक, एक देशी एसएलएफ 4 जे कार्यान्वयन, MarkerFilter नामक फ़िल्टर वाले जहाज जो मुझे लगता है कि आप क्या चाहते हैं।

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