2010-10-20 13 views
6

मैं निम्न XML संपत्ति फ़ाइल का उपयोग कर एक ग्रहण प्लगइन परियोजना में log4j कॉन्फ़िगर करने के लिए कोशिश कर रहा हूँ, कि EclipseLoggingAppender नामक कस्टम appender शामिल का उपयोग कर:log4j कस्टम नहीं मिल appender एक संपत्ति फ़ाइल

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 
    <appender name="eclipseErrorView" class="com.lior.ibd.utils.logging.EclipseLoggingAppender"/> 

<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
    </appender> 

    <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
    </root> 
    <logger name="com.lior"> 
    <level value ="warn" /> 
    <appender-ref ref="eclipseErrorView" /> 
    </logger> 

</log4j:configuration> 

मैं इस संपत्ति पारित कोड में निम्नलिखित कथन से दायर:

log4j:ERROR Could not create an Appender. Reported error follows. 
java.lang.ClassNotFoundException: com.lior.ibd.utils.logging.EclipseLoggingAppender 
:

DOMConfigurator.configure(filename); 

लेकिन जब आवेदन मैं निम्नलिखित त्रुटि संदेश प्राप्त लोड हो रहा है

कोई भी जानता है कि सौदा क्या है? एक क्लासपाथ मुद्दा हो सकता है? ..

उत्तर

1

हां, यह एक क्लासपाथ मुद्दा है। Log4j कक्षा com.lior.ibd.utils.logging.EclipseLoggingAppender की तलाश में है। (शायद appender कि आपके संगठन में किसी ने लिखा है?)

आप लाइनों को निकाल देते हैं:

<appender name="eclipseErrorView" class="com.lior.ibd.utils.logging.EclipseLoggingAppender"/> 

और

<logger name="com.lior"> 
    <level value ="warn" /> 
    <appender-ref ref="eclipseErrorView" /> 
</logger> 

log4j इसे संभाल चाहिए।

या उचित जार फ़ाइल ढूंढकर क्लासपाथ में EclipseLoggingAppender जोड़ें और इसे क्लासपाथ में जोड़ें। अर्थात। रन

java -cp appender.jar com.mypackage.MyClass 
+0

मैं उन लाइनों को हटाना नहीं चाहता क्योंकि मैं इस एपेंडर को एप्लिकेशन फ्रेमवर्क में चलाना चाहता हूं ... आपका क्या मतलब है " क्लासपाथ में EclipseLoggingAppender जोड़ना "? – Protostome

+1

@Protostome - यह आपके पर्यावरण पर निर्भर करता है। क्या आप कमांड लाइन से या एप्लिकेशन सर्वर के भीतर या किसी और तरह से अपना कोड चला रहे हैं? – krtek

+0

यह एक ग्रहण आरसीपी अनुप्रयोग – Protostome

1

स्टार्टर्स के लिए आपके पास केवल एक <root> तत्व हो सकता है। आप और अधिक

<appender name="eclipseErrorView" class="com.mypackage.EclipseLoggingAppender"> 
    <filter class="org.apache.log4j.varia.LevelRangeFilter Source code of org.apache.log4j.varia.LevelRangeFilter"> 
    <param name="LevelMin" value="WARN" /> 
    </filter> 
</appender> 

<root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
    <appender-ref ref="eclipseErrorView" /> 
</root> 

कैसे आप classpath को अपने कस्टम लकड़हारा जोड़ लिया है की तरह कुछ करना चाहते हैं?

+0

EclipseLoggingAppender एक अलग प्लगइन प्रोजेक्ट में स्थित है, और अन्य प्लगइन में निर्यात किया जाता है। लॉगिंग उपयोगिता का उपयोग करने वाले सभी प्लगइन में इस प्लगइन प्रोजेक्ट को उनके 'आवश्यक प्लगइन' सेक्शन में शामिल किया गया है ... – Protostome

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