2012-05-21 37 views
10

मैं कॉमन्स-logging.jar (v1.0.4) और classpath में log4j-1.2.8.jar और हो रही निम्नलिखित रन-टाइम त्रुटि है:क्या Log4JLogger का मूल कारण पाया जा सकता है या उपयोग नहीं किया जा सकता है?

Caused by: org.apache.commons.logging.LogConfigurationException: User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable. 
    at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:874) 
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604) 
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336) 
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310) 
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685) 
+0

क्या आप पूरे स्टैक ट्रेस प्रदान कर सकते हैं? – Dmitry

+6

यह एक क्लासपाथ समस्या है। आपके पास शायद आपके क्लासपाथ में log4j का एक और संस्करण है, संभवतः किसी अन्य चीज़ के अंदर छिपा हुआ है। –

+0

मुझे एक जार मिला जो लॉग 4j का एक अलग संस्करण था, हालांकि यह आखिरी नहीं हो सकता है, फिर भी खोज रहा है ... –

उत्तर

4

यह एक क्लासपाथ समस्या थी और हमारे पास कक्षापथ में log4j का एक और संस्करण था। धन्यवाद नाथन रयान!

1

आप एक लकड़हारा के लिए एक कार्यान्वयन प्रदान कर रहे हैं, कार्यान्वयन को एक ऐसे निर्माता को परिभाषित करना होगा जो एक java.lang.String को तर्क के रूप में लेता है। अन्यथा आपको एक "org.apache.commons.logging.LogConfigurationException: उपयोगकर्ता द्वारा निर्दिष्ट लॉग क्लास '...' मिल नहीं पाया जा सकता है या उपयोग नहीं किया जा सकता है।" Apache विकी के faq पृष्ठ ऐसा कहता है।

क्या आप वेब-सेवाओं या वसंत आदि जैसी कोई विशिष्ट परियोजना बना रहे हैं? यदि हाँ, तो जैसे

<property name="logger">javax.servlet,org.apache.commons.logging</property>

जो लॉगर के संदर्भ में एक संपत्ति के लिए होता है परियोजना विशिष्ट संपत्ति फ़ाइलें, कुछ का विश्लेषण कृपया अगर आप सर्वलेट्स के साथ एक जावा परियोजना है।

+0

हमारे पास लॉगर का कार्यान्वयन नहीं है इसलिए इस मुद्दे को खत्म करें। इसका एक कोर-जावा एप्लिकेशन अपने स्वयं के जेवीएम –

+0

ठीक है। कृपया अपनी समस्या के बारे में अधिक जानकारी दें, स्टैक-ट्रेस, न्यूनतम कामकाजी कोड इत्यादि – mtk

1

मुझे यह वही अपवाद मिला।

मेरे पास लॉगर का कार्यान्वयन है।

इसमें कोई कन्स्ट्रक्टर नहीं था जो एक स्ट्रिंग को तर्क के रूप में लेता है।

मैंने इस तरह के एक निर्माता को लागू किया और इसने मेरे लिए समस्या हल की।

1

मैं कभी-कभी यह त्रुटि देखता हूं जब मैं अपने ग्रहण 3.6 में टॉमकैट 7 पर वेब एप्लिकेशन चलाने की कोशिश करता हूं। ग्रहण को पुनरारंभ करके यह कहीं से बाहर नहीं होता है।

कई (!) "सभी परियोजनाओं को साफ करें" और सर्वर पर वेब ऐप के नए तैनाती के बाद एप्लिकेशन फिर से चलता है। हो सकता है कि कोई और परीक्षण और त्रुटि के बिना इस रहस्य को हल करने के लिए सटीक "वर्तनी" जानता है?

1

मुझे यह त्रुटि मिल रही थी जब अपाचे कॉमन्स लॉगिंग जार मेरे क्लासपाथ में था लेकिन log4j jar किसी भी तरह गायब था। एक बार जब मैंने अपने वर्ग पथ में log4j जार जोड़ा, तो यह त्रुटि चली गई।

11

आप Maven का उपयोग कर रहे हैं, तो आप यह सुनिश्चित करना चाहिए pom.xml

<dependencies> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.1.3</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 
</dependencies> 

में घोषित कॉमन्स-कटाई तथा log4j यदि आप यह घोषणा करते ही आप त्रुटि Log4JLogger cannot be found or is not useable

3

इस समस्या log4j का उपयोग कर था हो रही के साथ कॉमन्स-प्रवेश करने -2.x कॉमन्स-लॉगिंग-1.2 के साथ। Log4j 1.2.x पर वापस लौटाया गया और सब कुछ दुनिया के साथ ठीक है।

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