2012-09-13 16 views
9

के साथ org.apache.log4j.ConsoleAppender कॉन्फ़िगर करें मेरे पास एक जावा क्लास है जो प्रारंभिक पर जावस्सिस्ट क्लास लोडर के आधार पर एक कस्टम क्लासलोडर बनाता है और फिर वास्तविक प्रोग्राम क्लास चलाता है। मैं निम्न त्रुटि हो रही है:कस्टम क्लासलोडर

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a   
"org.apache.log4j.Appender" variable. 
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
log4j:ERROR [[email protected]] whereas object of type 
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by 
[[email protected]]. 
log4j:ERROR Could not instantiate appender named "stdout". 

समस्या तथ्य यह है कि एक वस्तु मूल classloader द्वारा बनाई गई है, जबकि अन्य कस्टम एक द्वारा बनाई गई है से संबंधित है।
क्या इस त्रुटि को हल करने का कोई तरीका है?

अग्रिम धन्यवाद,
Avner

उत्तर

16

-Dlog4j.ignoreTCL = सच स्थापित करने के लिए प्रयास करें, आशा है कि यह मदद करता है। एक simular मुद्दा about log4j

+1

एक आकर्षण की तरह काम किया में दिखाया गया है ;-) धन्यवाद –

0

Maven बिल्ला प्लगइन विन्यास में log4j.ignoreTCL जोड़े के रूप में नीचे

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
     <port>${local.server.port}</port> 
     <update>true</update> 
     <systemProperties> 
     <log4j.configurationFile>${user.dir}\conf\log4j2.xml</log4j.configurationFile> 
     <log4j.ignoreTCL>true</log4j.ignoreTCL> 
     <java.util.logging.manager>org.apache.logging.log4j.jul.LogManager</java.util.logging.manager> 
     </systemProperties> 
     <contextReloadable>true</contextReloadable> 
    </configuration> 
</plugin> 
संबंधित मुद्दे