SLF4J: कक्षा "org.slf4j.impl.StaticLoggerBinder" को लोड करने में विफल। त्रुटि


115
  • के बारे में ग्रहण आईडीई ( इंडिगो , जूनो और केपलर (32 और 64 बिट संस्करण))
  • प्लेटफ़ॉर्म : विंडोज , उबंटू , मैक
  • एम 2 का संस्करण : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,
    1.4.0.20130601-0317

सामान्य जानकारी

उपरोक्त त्रुटि 1.1 संस्करण 2 को अद्यतन करने के बाद आई। एम 2 को हटाकर 1.1 और एम 2 को वापस रोल करने से 1.0 सब कुछ ठीक हो गया। मैंने विंडोज और उबंटू में समस्या को दोहराने की कोशिश की और इसने मुझे वही त्रुटि दी। Slf4j-api और लॉगबैक के कई विन्यासों का परीक्षण किया गया था, लेकिन कोई भी काम नहीं करता है।

Slf4j निर्भरता की घोषणा के बिना भी त्रुटि किसी भी मावेन परियोजना में दिखाई देती है ।

  • न्यू मावेन प्रोजेक्ट -> मावेन-आर्कटाइप-क्विकस्टार्ट

    तथा

  • न्यू मावेन प्रोजेक्ट -> बिना सिलेक्शन के सिंपल प्रोजेक्ट

    के लिए परिणाम

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

परीक्षण वातावरण और विन्यास

मैक पर ग्रहण इंडिगो और ग्रहण जूनो (32 और 64 बिट दोनों) के साथ परीक्षण किया गया, उबंटू पर 32 बिट और विंडोज पर 64 और 32 बिट। जूनो क्लासिक , जूनो मॉडलिंग टूल्स , केपलर स्टैंडर्ड , केपलर मॉडलिंग टूल्स की ताजा स्थापना का परीक्षण किया और वही त्रुटि उत्पन्न की।

त्रुटि शेष लक्ष्यों के साथ स्वच्छ , स्थापित , परीक्षण , तैनाती , उत्पन्न-स्रोत , मान्य , संकलन , पैकेज , एकीकरण-परीक्षण , सत्यापित और लक्ष्य के संयोजन के साथ प्रकट होती है । यह पैरामीटर -e और -X के साथ भी दिखाई देता है । एम 2 रिपॉजिटरी को हटाने और इसे खरोंच से डाउनलोड करने का प्रयास किया गया था लेकिन फिर से सफलता के बिना। मुझे यह उल्लेख करना चाहिए कि उपरोक्त सभी प्रणालियों में 3 अलग-अलग मशीनों और वर्चुअल बॉक्स में इसका परीक्षण किया गया था लेकिन यह एक ही त्रुटि उत्पन्न करता है।

सभी अलग-अलग लॉगबैक कॉन्फ़िगरेशन की कोशिश की (1.0.4 से 1.0.13 तक) जो कि slf4j-api और लॉगबैक-कोर निर्भरता को हल करता है, लेकिन सभी एक ही त्रुटि उत्पन्न करते हैं:

<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version></version>
</dependency>

सभी अलग-अलग (1.6.1 से 1.7.5 तक) slf4j-simple कॉन्फ़िगरेशन की कोशिश की।

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

सभी अलग-अलग (1.6.1 से 1.7.5 तक) log4j-over-slf4j कॉन्फ़िगरेशन की कोशिश की।

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>log4j-over-slf4j</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

सभी अलग-अलग (1.6.1 से 1.7.5 तक) slf4j-jdk14 कॉन्फ़िगरेशन की कोशिश की।

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-jdk14</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

सभी अलग-अलग (1.6.1 से 1.7.5 तक) slf4j-log4j12 कॉन्फ़िगरेशन की कोशिश की।

<dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-log4j12</artifactId>
     <version></version>
     <scope>compile</scope>
</dependency>

Slf4j-nop 1.7.5 कॉन्फ़िगरेशन की कोशिश की ।

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-nop</artifactId>
  <version>1.7.5</version>
  <scope>compile</scope>
</dependency>

अंतिम लेकिन कम से कम लॉग को सहेजने और त्रुटि के बावजूद मुद्रित नहीं किया गया है।


त्रुटि को पुन: उत्पन्न करने के तरीके

  • ग्रहण जूनो, इंडिगो या केप्लर 32 या 64 बिट डाउनलोड करें (सभी स्थापनाएं एक ही त्रुटि का कारण बनेंगी)।

    • एम 2 ई स्थापित करें - ग्रहण के लिए मावेन एकीकरण

      या

    • अपने m2e संस्करण को 1.1.0.20120530-0009 , या 1.2.0.20120903-1050 , या 1.3.0.20130129-0926 , या 1.4.0.20130601-0317 पर अपडेट करें )


    • फ़ाइल का चयन करें-> नया-> अन्य-> मावेन प्रोजेक्ट-> अगला क्लिक करें-> कैटलॉग से मावेन-आर्कटाइप
      -क्विकस्टार्ट चुनें-> समाप्त करें

      या

    • फाइल का चयन करें-> नया-> अन्य-> मैवेन प्रोजेक्ट-> नेक्स्ट-> सिलेक्ट करें एक सिंपल प्रोजेक्ट बनाएं (आर्किटाइप सेलेक्शन को छोड़ें) -> आर्टवर्क की पूरी जानकारी-> समाप्त करें

  • प्रोजेक्ट पर राइट क्लिक करें-> रन अस-> क्लीन इंस्टाल (या ऊपर उल्लिखित कोई अन्य लक्ष्य)

कंसोल पर पहली पंक्ति होगी

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

पीएस मौजूदा परियोजनाएं एम 2 संस्करण को 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317 में अपडेट करने के बाद उसी त्रुटि का उत्पादन करेंगी


अपडेट

संपादित करें

m2e समर्थन साइट:

  • उपरोक्त प्रश्न को m2e समर्थन साइट में बग के रूप में पोस्ट किया गया था और इगोर फेडोरेंको का जवाब था

    इस संदेश को दबाने की कोई तत्काल योजना नहीं है।

    उपरोक्त बग देखने के लिए कृपया m2e आधिकारिक सहायता साइट देखें


EDIT 2

  • उपरोक्त त्रुटि संकेत m2e संस्करण 1.2.0.20120903-1050 पर भी मौजूद है


EDIT 3

  • उपरोक्त त्रुटि संकेत m2e संस्करण 1.3.0.20130129-0926 के लिए भी मौजूद है


EDIT 4

  • उपरोक्त त्रुटि संकेत m2e संस्करण 1.4.0.20130601-0317 पर भी मौजूद है


EDIT 5

                              ***Reported FIXED***
  • उपरोक्त त्रुटि को m2e संस्करण 1.5.0 / Luna M3 ( लक्ष्य मील का पत्थर ) के लिए तय किया गया है । संस्करण अभी डाउनलोड के लिए उपलब्ध नहीं है।
  • लूना एम 3 15 नवंबर को निर्धारित है
  • नवीनतम देव बिल्ड यहां उपलब्ध हैं
  • M2e मील के पत्थर के बारे में अधिक जानकारी आप m2e मुख्य भंडार में पा सकते हैं ।

@EliranMalka यह लंबा है लेकिन एक कारण के साथ। एक ही सवाल पूछने से बचने के लिए लोगों की मदद करने की कोशिश करना और हर विवरण को शामिल करना जो समझने के लिए आवश्यक हो सकता है अगर वे एक ही समस्या का सामना कर रहे हैं तो मुझे बहुत अधिक विकल्प नहीं देने चाहिए। :-)
कोन्स्टेंटिनोस मार्गारिटिस

Neo4j के साथ प्रयोग के वसंत डेटा की कोशिश करते हुए मैं यह त्रुटि आई मैं slf4jदोनों में slf4j-api-1.7.7और jcl-over-slf4j-1.7.7और अगर मैं उनमें से किसी को भी दूर करने की कोशिश मैं कह रही है कि उनके एक त्रुटि संदेश मिलता Loggerवर्ग याद आ रही है। मुझे क्या करना चाहिए?
user1885868

@KonstantinosMargaritis आप कृपया बता सकते हैं कि इसे pom.xml के साथ कैसे ठीक किया जाए, मैं इसे स्थानीय सेटअप पर काम कर सकता था, लेकिन जेनकिंस पर यह हमेशा विफल हो रहा है।
विक्रमवी

आपका वर्तमान सेटअप @vikramvi क्या है?
कोन्सटान्टीनोस Margaritis

इस पर वापस पाने के लिए @KonstantinosMargaritis धन्यवाद। मुझे एहसास हुआ कि मावेन लिनक्स पर 3.0 संस्करण था जिसे नवीनतम संस्करण में उन्नत किया गया और फिर से प्रयास किया गया। इस मुद्दे को तय किया। लेकिन पूरा दिन बिताने की कोशिश करनी पड़ी कि क्या गलत हो सकता है। फिर भी धन्यवाद।
विक्रमवी

जवाबों:


75

मैं इस त्रुटि की पुष्टि भी कर सकता हूं।

वर्कअराउंड: एम 2eclipse के अंदर बाहरी मावेन का उपयोग करना है, इसके बजाय यह एम्बेडेड मावेन है।

यह तीन चरणों में किया जाता है :

1 स्थानीय मशीन पर मावेन स्थापित करें (परीक्षण-मशीन उबंटू 10.10 थी)

मवन - विसर्जन

Apache Maven 2.2.1 (rdebian-4) Java संस्करण: 1.6.0_20 Java होम: / usr / lib / jvm / java-6-openjdk / jre डिफ़ॉल्ट लोकेल: de_DE, प्लेटफॉर्म एन्कोडिंग: UTF-8 OS नाम: "linux" संस्करण: "2.6.35-32-जेनेरिक" आर्क: "एमड 64" परिवार: "यूनिक्स"

2 रन मावेन बाहरी लिंक कैसे सांत्वना से मावेन चलाने के लिए

> cd path-to-pom.xml
> mvn test
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Simple
    [INFO]    task-segment: [test]
    [INFO] ------------------------------------------------------------------------
    [...]
    [INFO] Surefire report directory: [...]/workspace/Simple/target/surefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running net.tverrbjelke.experiment.MainAppTest
    Hello World
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [...]

एम 2eclipse के अंदर 3: एम्बेडेड मावेन से स्थानीय मावेन पर स्विच करें

  • पता लगाएँ कि स्थानीय मावेन होम इंस्टॉलेशन dir है ( mvn --versionया MAVEN_HOME, आपके लिए Google , मेरे लिए इसने मेरी मदद की है /usr/share/maven2)
  • ग्रहण में मेनू-> विंडो-> प्राथमिकताएं -> मावेन-> स्थापना-> उस स्ट्रिंग को दर्ज करें। फिर आपको अपने नए बाहरी मैवेन पर स्विच करना चाहिए।
  • फिर अपने प्रोजेक्ट को "maven test" के रूप में चलाएं।

त्रुटि-संदेश चला जाना चाहिए।


1
मैं आपके उत्तर को स्वीकार कर रहा हूं क्योंकि कष्टप्रद त्रुटि को दरकिनार करने के लिए यह एकमात्र समाधान है। आपके विश्लेषणात्मक उत्तर के लिए बहुत-बहुत धन्यवाद। :) ..
कोन्स्टेंटिनोस मार्गरिटिस

3
हम्म मैं विंडोज पर हूं और नए बाहरी इंस्टॉलेशन में बदल गया हूं, हालांकि त्रुटि अभी भी मौजूद है !?
stefan.at.wpf

4
क्षमा करें, यह काम करता है। ध्यान दें कि रन कॉन्फ़िगरेशन पर मावेन रनटाइम (आंतरिक / बाहरी) के लिए एक विकल्प है। इसलिए यदि आप किसी सहेजे गए का उपयोग करते हैं, तो इसे अपडेट करना सुनिश्चित करें।
stefan.at.wpf

@ stefan.at.wpf यह सुनने के लिए अच्छा है कि यह काम करता है। यदि आप चाहें, तो आप बग की मेलिंग सूची में सदस्यता ले सकते हैं और कुछ परिवर्तन होने पर सूचित कर सकते हैं।
कॉन्सटैनटिनो मार्गारिटिस

2
मेरे लिए, #mvn --versionMAVEN_HOME दिखाना सुविधाजनक है।
biaobiaoqi

25

इसे हल करने के लिए SLf4J साइट में एक दस्तावेज है। मैंने उसका अनुसरण किया और slf4j-simple-1.6.1.jar को मेरे एप्लायंस के साथ जोड़ दिया, साथ ही साथ slf4j-api-1.6.1.jar जो मेरे पास पहले से था। इसने मेरी समस्या हल कर दी।

slf4j


4
यह काम करता है, मावेन में जोड़ सकता है: <निर्भरता> <groupId> org.slf4j </ groupId> <विरूपण साक्ष्य> slf4j-simple </ विरूपण साक्ष्य> <संस्करण> 1.XX </ संस्करण> </ निर्भरता> // बस के साथ बदलें आपका संस्करण
एनरिएक सैन मार्टिन

@ मोहम्मद इरफान को ग्रहण में मुझे इस दोजर को लिबास फोल्डर में जोड़ने की आवश्यकता हो सकती है?
15:56

1
मैं मावेन के बाद के संस्करण का उपयोग कर रहा हूं और ऊपर दिए गए चरणों का पालन किया था, लेकिन यह उत्तर था जिसने इस मुद्दे को दूर कर दिया - धन्यवाद :)
रोब विल्सन

15

यदि आप ग्रेडेल का उपयोग कर रहे हैं, तो इसे जोड़ें:

dependencies { 
... 
compile "org.slf4j:slf4j-simple:1.7.9" 
... 
}

यह यहाँ ग्रेडेल के साथ काम करता है !! क्या आप बता सकते हैं कि जब हम उस पुस्तकालय को जोड़ते हैं तो क्या होता है?
फेलिप परेरा

5

ग्रैडल के साथ एक ही परिणाम के साथ इसी तरह की त्रुटि थी और निम्नलिखित द्वारा इसे हल करने में सक्षम था:

//compile 'org.slf4j:slf4j-api:1.7.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.1'

आउट-टिप्पणी वाली पंक्ति वह है जो त्रुटि आउटपुट का कारण बनी। मेरा मानना ​​है कि आप इसे मावेन में स्थानांतरित कर सकते हैं।


3

आपने अपने मावेन निर्भरता फ़ाइल में संस्करण निर्दिष्ट नहीं किया है, यही कारण है कि यह नवीनतम जार को नहीं उठा रहा है और
साथ ही आपको slf4j-log4j12विरूपण साक्ष्य आईडी के साथ एक और अपंगता की आवश्यकता है ।
इसे अपनी pom फ़ाइल में शामिल करें

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

मुझे पता है कि अगर त्रुटि अभी भी हल नहीं हुई है, तो
मैं भी आपको इस लिंक को देखने के लिए पुनः शामिल करता हूं


3
बताए गए सभी संस्करणों की जाँच की गई। मैंने पुनरावृत्ति से बचने के लिए इसे वहाँ घोषित नहीं किया। टैग जानबूझकर खाली छोड़ दिया गया। कृपया देखें कि उपरोक्त समस्या बग को m2e समर्थन साइट पर पोस्ट की गई थी और उपरोक्त त्रुटि को हल करने का कोई तरीका नहीं है, जब तक कि m2e डेवलपर्स द्वारा प्रभावित नहीं किया जाता है। मैंने कई बार वेबसाइट को पढ़ा है और मैंने सभी संभावित पुस्तकालयों को शामिल किया है जो इस मुद्दे को हल कर सकते हैं। दुर्भाग्य से किसी भी विन्यास ने काम नहीं किया क्योंकि इसे घोषित निर्भरता के बजाय एम 2 के साथ करना है। उपरोक्त त्रुटि मावेन कंसोल या नेटबीन्स में नहीं दिखाई देती है। केवल ग्रहण में।
कोन्स्टैंटिनोस मार्गारिटिस

1
slf4j-log4j12 slf4j-simple, slf4j-jdk14 और लॉगबैक-क्लासिक के साथ एक और बाध्यकारी है। उपरोक्त निर्भरताओं में से किसी को बाध्यकारी के साथ समस्या को हल करना चाहिए था। जैसा कि मैंने पहले बताया कि समस्या m2e के साथ है। फिर भी धन्यवाद।
कोन्स्टैंटिनोस मार्गारिटिस

3

इस कोड को अपनी pom.xml फ़ाइल में पेस्ट करें। इससे मेरा काम बनता है।

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.1</version>
    <scope>test</scope>
</dependency>

यह "org.slf4j.impl.StaticLoggerBinder" त्रुटि को हल करता है, लेकिन अब सब कुछ लॉग कर रहा है, मैं src / परीक्षण / संसाधनों में log4j.xml और log4j.properties (एक समय में एक) डाल देता हूं, अब मेरी परियोजना के सभी ढांचे लॉगिंग कर रहे हैं। मेरे स्वयं के लॉगगिंग्स को छोड़कर संदेश के टन।
OJVM

1

इस मुद्दे के सामने आने पर इसे खत्म कर दिया गया था। यक़ीन मानिए जो लोग यहाँ आते हैं उनके लिए यह एक अच्छा अंक होगा:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064


कृपया एक लिंक ही नहीं, बल्कि एक पूर्ण उत्तर प्रदान करें।
स्लफान

@Prince यदि आप प्रश्न विवरण पढ़ते हैं, तो आप एक हिस्सा पा सकते हैं जो कहता है "उपरोक्त बग को देखने के लिए कृपया m2e आधिकारिक समर्थन साइट देखें" जो आपके द्वारा उल्लिखित url को इंगित करता है।
मार्गारिटिस

उफ़ .. मेरी बुर। दिल से क्षमा!
प्रिंस

1

मैं अपने स्प्रिंग बूट के लिए समान मुद्दा था - ग्रहण लूना पर चलने वाला ग्रेड। मैं इसे अपने प्रोजेक्ट के .classpath में मैन्युअल रूप से जोड़कर हल कर सकता था

<classpathentry sourcepath="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/3150039466ad03e6ef1c7ec1c2cbb0d96710cf64/slf4j-simple-1.7.7-sources.jar" kind="lib" path="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/8095d0b9f7e0a9cd79a663c740e0f8fb31d0e2c8/slf4j-simple-1.7.7.jar"/>

आइडिया इस समाधान का पालन करना है। लेकिन कैसे लागू किया जाए यह केस टू केस पर निर्भर है। फिक्सिंग का एक तरीका वह है जो मैंने ऊपर प्रयोग किया है।

उम्मीद है की यह मदद करेगा।


0

यह एक त्रुटि संदेश नहीं बल्कि एक चेतावनी है। यह उनकी वेबसाइट में बहुत स्पष्ट रूप से समझाया गया है:

यह चेतावनी, यानी त्रुटि नहीं, संदेश तब रिपोर्ट किया जाता है जब कोई SLF4J प्रदाता वर्ग पथ पर नहीं पाया जा सकता है। Slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar या क्लासबैक-क्लासिक .jar में से एक (केवल एक) को रखने से समस्या का समाधान होना चाहिए। ध्यान दें कि इन प्रदाताओं को slf4j-api 1.8 या बाद का लक्ष्य रखना चाहिए।

प्रदाता की अनुपस्थिति में, SLF4J एक नो-ऑपरेशन (NOP) लकड़हारा प्रदाता के लिए डिफ़ॉल्ट होगा।

https://www.slf4j.org/codes.html#StaticLoggerBinder


0

मुझे जावा का उपयोग करके काफ्का निर्माता कार्यक्रम लिखने में भी यही समस्या थी। यह त्रुटि गलत slf4j लाइब्रेरी के कारण आ रही है। नीचे slf4j- सरल मावेन निर्भरता का उपयोग करें जो आपकी समस्या को ठीक करेगा।

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.1</version>
    <scope>test</scope>
</dependency>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.