2009-04-15 11 views
7

क्या "जानकारी" आउटपुट केवल कुछ लॉग फ़ाइल में लिखा गया है, जबकि कंसोल पर लिखा गया "डीबग" और "जानकारी" आउटपुट होना संभव है?मैं log4j आउटपुट को कैसे निर्देशित कर सकता हूं ताकि विभिन्न लॉग स्तर अलग-अलग परिशिष्टों पर जाएं?

LOG.debug(fileContent); 
LOG.info(fileLength); 

क्या एक इसी log4j.xml कैसा दिखता है: उदाहरण के लिए, इस प्रवेश दिया?

उत्तर

5

यह निश्चित रूप से संभव है।

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     ... 
    </appender> 

    <appender name="otherAppender" 
       class="org.apache.log4j.FileAppender FileAppender"> 
     ... 
    </appender> 

    <logger name="com.mycompany.mypackage.MyClass"> 
     <level  value="info"/> 
     <appender-ref ref="otherAppender" /> 
    </logger> 

    <root> 
     <priority  value="debug" /> 
     <appender-ref ref="console" /> 
    </root> 
</log4j:configuration> 

सभी डिबग और जानकारी संदेशों console appender पर जाएँ: विन्यास कुछ इस तरह (वाक्यात्मक शुद्धता के लिए चयनित नहीं) लगेगा। जानकारी संदेश otherAppender पर जाते हैं।

+0

मैंने आपके उत्तर में कुछ छोटे संपादन किए हैं। उम्मीद है कि यह ठीक है। – Eddie

+0

यह ठीक है :) धन्यवाद! –

1

कुछ उदाहरणों के लिए this पृष्ठ पर जाएं।

यह आपके प्रोग्राम में दो अलग-अलग परिशिष्ट जोड़ने के समान सरल है, प्रत्येक प्रकार के लॉगिंग के लिए एक एपेंडर जो आप करना चाहते हैं।

0

एडीआई से कॉन्फ़िगरेशन के साथ ही MyClass के लिए "जानकारी" आउटपुट प्राप्त हो सकता है। लेकिन मैं यह जानना चाहता हूं कि MyClass की "जानकारी" आउटपुट फ़ाइल में जाती है और MyClass का "डीबग" आउटपुट कंसोल पर जाता है।

0

रूप rwwilden सुझाव दिया, लेकिन इस हिस्से को हटाने है:

<logger name="com.mycompany.mypackage.MyClass"> 
    <level value="info"/> 
    <appender-ref ref="otherAppender" /> 
</logger> 

और otherAppender तहत <param name="Threshold" value="INFO"/> जोड़ें।

10

ठीक है, मैं इसे अब मिल गया है:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     ... 
    </appender> 

    <appender name="otherAppender" 
       class="org.apache.log4j.FileAppender FileAppender"> 
     <param name="Threshold" value="INFO"/> 
     ... 
    </appender> 

    <root> 
     <priority  value="debug" /> 
     <appender-ref ref="console" /> 
     <appender-ref ref="otherAppender" /> 
    </root> 
</log4j:configuration> 

आपकी मदद के लिए धन्यवाद!

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