এসএলএফ 4 জ: "org.slf4j.impl.StaticLoggerBender" শ্রেণি লোড করতে ব্যর্থ


619

আমার অ্যাপ্লিকেশনটি টিসি সার্ভার এবং ওয়েবস্পিয়ার 6.1 এ উভয়ই মোতায়েন করা হবে। এই অ্যাপ্লিকেশনটির জন্য eCCache ব্যবহার করা হয় এবং তাই নির্ভরতা হিসাবে slf4j প্রয়োজন। ফলস্বরূপ আমি আমার যুদ্ধের ফাইলের বান্ডেলে slf4j-api.jar (1.6) জার যুক্ত করেছি।

অ্যাপ্লিকেশনটি নিম্নলিখিত ত্রুটি ব্যতীত টিসি সার্ভারে দুর্দান্ত কাজ করে:

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.

যাইহোক, যখন আমি ওয়েবস্পিয়ারে স্থাপন করি তখন আমি একটি পাই java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder

সাথে ছিল Failed to load class "org.slf4j.impl.StaticMDCBinder"

আমি উভয় অ্যাপ্লিকেশন সার্ভারের ক্লাসপথগুলি পরীক্ষা করে দেখেছি এবং অন্য কোনও এসএফ 4 জার নেই।

এখানে কি ঘটতে পারে কারও কি কোনও ধারণা আছে?


এই নিবন্ধটি আমার সমস্যার সমাধান করেছে
হিসাবরক্ষক

উত্তর:


517

ওয়েবস্পিয়ার 6.1 এর সাথে আমারও একই সমস্যা ছিল। সেকি যেহেতু উল্লেখ করেছেন, এখানে অনেকগুলি জার ছিল যা ওয়েবস্পিয়ার ব্যবহার করছিল এবং তাদের মধ্যে একটি slf4j এর পুরানো সংস্করণটির দিকে ইশারা করছিল।

নো-অপ্ট ফ্যালব্যাকটি কেবলমাত্র slf4j -1.6+ এর সাথে ঘটে তাই এর চেয়ে পুরানো যে কোনও কিছু ব্যতিক্রম ঘটায় এবং আপনার স্থাপনাকে থামিয়ে দেয়।

এসএলএফ 4 জ সাইটে একটি ডকুমেন্টেশন রয়েছে যা এটি সমাধান করে। আমি এটি অনুসরণ করেছিলাম এবং slf4j-simple-1.6.1.jarআমার অ্যাপ্লিকেশনটি যুক্ত slf4j-api-1.6.1.jarকরেছিলাম যা ইতিমধ্যে আমার ছিল।

এটি আমার সমস্যা সমাধান করেছে। আশা করি এটি অন্যদের যাদের এই সমস্যা রয়েছে তাদের সহায়তা করবে।


4
হ্যাঁ, ত্রুটিটি এখানে উল্লিখিত হিসাবে রয়েছে - slf4j.org/manual.html তবে আমি এখন একটি নতুন ত্রুটি পেয়েছি
ডেভিড

1
"সেকি যেহেতু উল্লেখ করেছেন, ওয়েবস্পিয়ার ব্যবহার করছে এমন প্রচুর পরিমাণ জার ছিল এবং তার মধ্যে একটি এসএলএফ 4 জেদের পুরানো সংস্করণটির দিকে ইঙ্গিত করছে।" - মাভেন নির্ভরতার যত্ন নেওয়ার জন্য এত কিছু! কি কৌতুক.
অ্যান্ড্রয়েড ডেভ

167
আরে আপনি মেভেন
সেরজিও

2
আমি 1.7 ব্যবহার করছি এবং একই সমস্যা আছে। আমি slf4j-simple-1.7.jar যোগ করি এবং এখন সমস্যাটি সমাধান হয়েছে।
ছোট্টবাজার

1
এটি আমার পক্ষে কাজ করে না। Slf4j- সরল জারটি লগ 4j.properties গ্রহণ করে না। পরিবর্তে, আমি slf4j-log4j12 এবং log4j জার যোগ করে বাস্তবায়নটি ব্যবহার করি যা আমার পক্ষে ভাল কাজ করে।
ফ্লাইরেন

379

এটি তাদের জন্য যারা গুগল অনুসন্ধান থেকে এখানে এসেছেন।

আপনি যদি মাভেন ব্যবহার করেন তবে কেবল নিম্নলিখিতটি যুক্ত করুন

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

অথবা

   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version>1.6.4</version>
   </dependency>

1
slf4j-simpleএকই সংস্করণ না হওয়ার কোনও কারণ আছে কি slf4j-api? তারা সম্ভবত একসাথে ভালভাবে কাজ করবে, তবে আমি মনে করি এটি একই সংস্করণটি ব্যবহার করার জন্য এটি নিরাপদ এবং সাধারণভাবে একটি ভাল অনুশীলন। এছাড়াও, যদি আপনাকে কনসোল-কেবলমাত্র লগিং সক্ষম করার প্রয়োজন হয়, উদাহরণস্বরূপ, ইউনিট পরীক্ষা চলাকালীন, তখন slf4j-simpleযথেষ্ট মনে হয় (এটি আমার পক্ষে ছিল)।
আইভায়লো স্লাভভ

22
আফাইক আপনার slp4j এর মাত্র 1 ইমপ্লিট থাকা উচিত, যেমন হয় slf4j-log4j12 অথবা slf4j-সহজ, উভয়ই নয়।
ওন্দ্র Žižka

@ ইগর ক্যাটকভ এটি কেবল স্থানীয় মেশিনে কাজ করে তবে জেনকিন্সের উপর একই ত্রুটি পেয়ে ভুল হয় কি না তা নিশ্চিত হন না। আপনি কি দয়া করে স্পষ্ট করতে পারেন
বিক্রমভি

slf4j-api এর জন্য কনফিগারেশন প্রয়োজন যা এটি প্রথম যখন চালানো হয় তখন উপলভ্য নয় (এবং কোনও কনফিগারেশন ফাইল সম্পাদনা করেনি)। Slf4j-সহজ ব্যবহার আপনাকে WYSIWYG ব্যতীত কোনও ফাইল কনফিগার না করেই বেসিক লগার ব্যবহারের অনুমতি দেবে। আপনি একবার ফাইলগুলি কনফিগার করতে এবং আপনার পছন্দ মতো লগার আউটপুট কাস্টমাইজ করতে শিখলে আপনি আবার slf4j-api এ ফিরে যেতে পারেন। (এখনও কোথায় আছে এবং কীভাবে সেগুলি আমি নিজে সম্পাদনা করব তা শিখছি)
চিপস

53

কেবল আপনার pom.xml এ এটি যুক্ত করুন :

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

3
সমাধানটি আমার পক্ষে কাজ করেছিল; এটি ডকুমেন্টেশনের দিকে ইঙ্গিত করার মতো (যেখানে আমি ত্রুটির ব্যাখ্যা দিয়েছি
উইটোল্ড ক্যাকজুরবা

2
সাধারণ কাফকা প্রযোজনার উদাহরণ চালনার সময় আমার পক্ষে এটি ছাড়া আর কিছুই নয়। একটি গুচ্ছ ধন্যবাদ!
বীরেন

@ উইটল্ডক্যাজুরবা ঠিক আছে। মাভেন ব্যবহার করে নির্ভরতা ব্যবহার করার সময় আমার একই সমস্যা ছিল। আমি কেবল গুগল করে slf4j.org/codes.html#StaticLoggerBinder এ গিয়েছি যা সমস্যা এবং এর সমাধান বলেছে। আমি slf4j-api সংস্করণটি 1.7.25 ব্যবহার করছিলাম। উল্লিখিত লিঙ্কটিতে ডকুমেন্টেশন চেক করার পরে আমি কেবল <নির্ভরতা> ব্যবহার করেছি <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency>এবং সমস্যার সমাধান হয়েছে
মোহাম্মদ আনাস

আমি মাভেন ব্যবহারের বিন্দুটি বুঝতে পারি না যদি গ্রন্থাগারগুলিতে কিছু লগারের প্রয়োজন হয় (যেমন হ্যান্ডলবারগুলি যার জন্য slf4j প্রয়োজন) তাদের পোমে এটি ঘোষণা না করে। যাই হোক ধন্যবাদ.
এরিক ডুমিনিল

আমার ক্ষেত্রে এটি সমাধান নয়। এটি কেবল তথ্য আড়াল করে রাখে, এখানে slf4j এবং log4j বা অন্য কোনও প্লাগইনের অসামঞ্জস্যপূর্ণ সংস্করণ রয়েছে।
হরিপ্রসাদ

42

তুমি তোমার ক্লাসপাথ মধ্যে বয়াম ফাইল নিম্নলিখিত যোগ করার জন্য প্রয়োজন: slf4j-simple-1.6.2.jar। আপনার যদি এটি না থাকে তবে দয়া করে এটি ডাউনলোড করুন। দয়া করে http://www.slf4j.org/codes.html# মাল্টিপল_বাইন্ডিংস দেখুন


তবে আমার টিসি সার্ভার ক্লাসপাথে আমার সেই জার নেই, এটাই আমাকে বিভ্রান্ত করে। আমি বুঝতে পারি না কীভাবে আমাকে টিসি সার্ভারে অতিরিক্ত জারের দরকার নেই তবে ওয়েবস্পিয়ারে করবেন
JJ180

1
আমার জন্য কাজ করেছেন, এবং স্বীকৃত উত্তরের চেয়ে অনেক সহজ। সংস্করণ 1.7.7 খুব কাজ করেছে।
লা-কোমাদ্রেজা

1
আমি ইতিমধ্যে jul-to-slf4jআমার মধ্যে ছিল pom.xmlএবং সবেমাত্র slf4j-simpleআগে যোগ এবং এটি দুর্দান্ত কাজ করে।
স্লাগম্যান্ড্রু

কেউ কীভাবে ক্লাসপথে জার ফাইল যুক্ত করে?
ডিন013 13

দয়া করে, আপনি আমাকে ক্লাস পাথ কী তা ব্যাখ্যা করতে পারেন? কোথায়? আমি বুঝতে পারি না
রোজ 8525

36

বেশ কয়েকটি উত্তর এখানে আপনার maven পোম ফাইলে slf4j- সাধারণ নির্ভরতা যুক্ত করার পরামর্শ দেয়। আপনি সর্বাধিক বর্তমান সংস্করণ পরীক্ষা করতে চাইবেন।

https://mvnrepository.com/artifact/org.slf4j/slf4j-simple আপনি SLF4J সরল বাঁধাই এর সর্বশেষ সংস্করণ পাবেন। যেটি আপনার পক্ষে সবচেয়ে ভাল স্যুট করে তা বেছে নিন (2019-02 থেকে এখনও 1.7.26 2019-07 এর স্থিতিশীল সংস্করণ) এবং এটি আপনার পম.এক্সএমএলে অন্তর্ভুক্ত করুন।

আপনার সুবিধার জন্য এখানে কিছু নির্ভরশীলতা দেখানো হয়েছে - তবে আপনি এটি পড়ার পরে সেগুলি আপ-টু-ডেট নাও হতে পারে!

2019-10 এর আলফা সংস্করণ

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>2.0.0-alpha1</version>
 </dependency>

ফেব্রুয়ারী 2019 এর বিটা সংস্করণ

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.8.0-beta4</version>
</dependency>

স্থিতিশীল সংস্করণ 2019-12

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>1.7.30</version>
</dependency>

আমি নীচের মন্তব্যে ধন্যবাদ স্কোপ পরীক্ষার অংশটি সরিয়েছি।


6
আপনি কেন ব্যবহার করবেন <scope>test</scope>? আমার অভিজ্ঞতায় ক্লাসপথে রয়েছে runtimeতা নিশ্চিত করার জন্য আমার কমপক্ষে সুযোগের প্রয়োজন need slf4j-simpleআপনি কীভাবে এটি কেবলমাত্র testসুযোগ নিয়ে কাজ করতে পেলেন তা আগ্রহী ...
ইকো

এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ। আমি সেই অনুযায়ী আমার উত্তর থেকে স্কোপ ট্যাগটি সরিয়েছি। এটি একটি কাটা ও পেস্টের সমস্যা ছিল - আমি যে লিঙ্কটি সরবরাহ করছি তা এইভাবে বিটা নির্ভরতা সরবরাহ করে।
ওল্ফগ্যাং ফাহল

27

আমি একই ত্রুটির মুখোমুখি ছিলাম। আমি আমার স্থানীয় বিকাশে slf4j-api, slf4j-log4j12 এবং log4j কনফিগার করেছি। সমস্ত কনফিগারেশন ঠিক ছিল, কিন্তু slf4j-log4j12 নির্ভরতা যা আমি mvnrepository থেকে অনুলিপি করেছি পরীক্ষার সুযোগ ছিল<scope>test</scope> । আমি যখন এটি সরিয়েছি তখন প্রতিটি জিনিস ঠিক আছে।

কিছু সময় মূর্খ ভুল আমাদের মাথা ভেঙে দেয়;)


1
অসংখ্য ধন্যবাদ! আমি একই সমস্যাটি রেখেছি এবং আমি আপনার পোস্ট না পাওয়া পর্যন্ত এটিকে ছেড়ে দিতে চলেছি!
এরগডিন

1
এটি আমাকেও সহায়তা করেছে
3min3

27

কিছু সময় আমাদের সতর্কবার্তা থেকে নোটটি দেখতে হবে SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

শ্রেণি পথে কোনও উপযুক্ত এসএলএফ 4 জাই বাঁধন সন্ধান করতে না পারলে এটি ঘটে

এই সতর্কতাটি আসার কারণ আপনি অনুসন্ধান করতে পারেন।
থেকে বয়াম এক যোগ করার পদ্ধতি *slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jarবা logback-classic.jar*বর্গ পথে সমস্যা সমাধানের করা উচিত নয়।

compile "org.slf4j:slf4j-simple:1.6.1"

উদাহরণস্বরূপ উপরোক্ত কোডটি আপনার build.gradleবা সম্পর্কিত pom.xmlকোডটিতে মেভেন প্রকল্পের জন্য যুক্ত করুন।


15

slf4j-log4j12-1.6.4.jarক্লাসপথে ফাইল রাখুন কৌতুক করবে।


6
বা আপনার পম নির্ভরতা যুক্ত করুন <ডিপেন্ডেন্সি> <groupId> org.slf4j </groupId> <artifactId> slf4j-log4j12 </artifactId> </
d

11

আপনি যদি ম্যাভেনকে নির্ভরতা পরিচালনায় ব্যবহার করে থাকেন তবে আপনি কেবল pom.xML এ নিম্নলিখিত নির্ভরতা যুক্ত করতে পারেন

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

অ-মাভেন ব্যবহারকারীদের জন্য কেবল গ্রন্থাগারটি ডাউনলোড করুন এবং এটি আপনার প্রকল্পের ক্লাসপথে রেখে দিন।

এখানে আপনি বিশদটি দেখতে পারেন: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/


1
খাঁটি ব্যবহারকারীদের জন্যও আমি জানতে পেরেছিলাম যে আমার নিম্নলিখিতগুলি পম.এক্সএমএলতে যুক্ত করা দরকার, যা স্বয়ংক্রিয়ভাবে লগব্যাক-কোর এনেছে: <d dependency> <groupId> ch.qos.logback </groupId> <artifactId> লগব্যাক-ক্লাসিক </ আর্টিফ্যাক্টআইডি> <version> 1.0.9 </version> </d dependency>
পল

2
This is not an error. This message tells you that you do not have any logger implementation (such as e.g. Logback) added in classpath, and therefore NOP (No Operation) log @ পল দ্বারা উল্লিখিত সরকোস মন্তব্যের জন্য লগব্যাক-ক্লাসিক যুক্ত করা দরকার। পরিবর্তন <artifactId>slf4j-simple</artifactId>থেকে অন্য পদ্ধতির <artifactId>slf4j-api</artifactId>কাজও কাজ করে। এটা তোলে চিত্রিত করা হয় এখানে
অভিজিৎ

10

এসএলএফ 4 জে বিভিন্ন লগিং ফ্রেমওয়ার্কের বিমূর্ততা । সুতরাং slf4j থাকা ছাড়াও আপনার যেকোন লগিং ফ্রেমওয়ার্ক যেমন আপনার লগ 4j বা লগব্যাক (ইত্যাদি) আপনার ক্লাসপথে অন্তর্ভুক্ত করতে হবে।
একটি ধারণা পড়ুন আছে প্রথম শিশুর ধাপ মধ্যে http://logback.qos.ch/manual/introduction.html


2
লগব্যাক যোগ করা আমার জন্য এটি স্থির করে। আমি সর্বশেষতম লগব্যাক ক্লাসিকটিকে পম (1.1.7) এ ফেলেছি এবং এটি ব্যর্থ হয়েছে কারণ slf4j নির্ভরতা খুব পুরানো (1.6.2)। ১.০.০ এ লগব্যাক ডাউনগ্রেড করা এবং ১.lf.x এ slf4j রেখে কাজ করা হয়েছে, যেমন slf4j কে 1.7.20 এ আপগ্রেড করেছে এবং লগব্যাকটি 1.1.7 এ রেখে গেছে।
ECDragon

5

এসএলএফ 4 জে লোগোজেজে, লগব্যাক, জাভা.ইটিল.লগিংয়ের মতো অন্তর্নিহিত লগিং ফ্রেমওয়ার্কগুলির একটি মুখোমুখি।

অন্তর্নিহিত ফ্রেমওয়ার্কগুলির সাথে সংযোগ করতে, slf4j একটি বাঁধাই ব্যবহার করে।

  • log4j - slf4j-log4j12-1.7.21.jar
  • java.util.logging - slf4j-jdk14-1.7.21.jar ইত্যাদি

বাঁধাই করা জারটি মিস করা থাকলে উপরের ত্রুটিটি ছুঁড়ে দেওয়া হয়। আপনি এই জারটি ডাউনলোড করে ক্লাসপথে যুক্ত করতে পারেন।

মাভেন নির্ভরতা জন্য,

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

এই নির্ভরতা slf4j-log4j12-1.7.21.jar ছাড়াও, এটি আপনার প্রকল্পের মধ্যে slf4j-api-1.7.21.jar পাশাপাশি log4j-1.2.17.jar টানবে

তথ্যসূত্র: http://www.slf4j.org/manual.html


আপনার সমাধানটি একমাত্র আমার জন্য কাজ করেছিল, ধন্যবাদ!
এডেনশো

5

আমি জাভা 9 লাইব্রেরির সাথে স্প্রিং-বুট -2 অ্যাপ্লিকেশনগুলির সাথে একই ধরণের সমস্যার মুখোমুখি হয়েছি।

আমার pom.xml এ নিম্নলিখিত নির্ভরতা যুক্ত করা আমার জন্য সমস্যাটি সমাধান করেছে:

    <dependency>
        <groupId>com.googlecode.slf4j-maven-plugin-log</groupId>
        <artifactId>slf4j-maven-plugin-log</artifactId>
        <version>1.0.0</version>
    </dependency>

4

ওয়েবস্ফিয়ার ক্ষেত্রে, আপনার কাছে slf4j-api.jar এর একটি পুরানো সংস্করণ, 1.4.x. বা 1.5.x কোথাও পড়ে আছে। টিসি সার্ভারে আপনি যে আচরণটি পর্যবেক্ষণ করেন, এটি এনওপি-র কাছে ব্যর্থ হয়েছে, এটি slf4j সংস্করণে 1.6.0 এবং তারপরে ঘটে। আপনি যে সমস্ত প্ল্যাটফর্মে slf4j-api-1.6.x.jar ব্যবহার করছেন এবং শ্রেনীর পথে slf4j-api এর কোনও পুরানো সংস্করণ স্থাপন করা হয়নি তা নিশ্চিত করুন।


ধন্যবাদ, আমি আমার ওয়েবস্ফিয়ার 6.1 ক্লাসপথটি পরীক্ষা করে দেখেছি এবং slf4j এর কোনও অন্য সংস্করণ দেখতে পাচ্ছি না, যেমন আমি slf4j জারের জন্য আমার ওয়েবস্পিয়ার ফাইল সিস্টেমে অনুসন্ধান করেছি এবং আমি কেবল আমার 1.6 সংস্করণটি ফিরে পেয়েছি। আপনি কি জানেন যে যদি ওয়েবস্ফিয়ারটি এসএলফ 4 জে প্যাকেজড আসে?
JJ180

যে কোনও কিছুই সম্ভব তবে ওয়েবস্পিয়ার এসএফএফ 4 জে-এপি দিয়ে বান্ডিল পেলে আমি খুব অবাক হব। ওয়েল্ড বান্ডিলগুলি slf4j-api.jar। আপনি কি ওয়েল্ড ব্যবহার করছেন?
Ceki

4

যখন আমি নিম্নলিখিত ত্রুটিটি পাই তখন আমি এই সমস্যার মধ্যে পড়েছিলাম:

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.

আমি যখন আমার ব্যবহার slf4j-api-1.7.5.jarকরছিলামlibs

সত্ত্বেও আমি পুরো প্রস্তাব সম্পূরক বয়াম সঙ্গে চেষ্টা করেছি, মত slf4j-log4j12-1.7.5.jar, slf4j-simple-1.7.5এখনও ত্রুটি বার্তা চলতে থাকে। সমস্যাটি শেষ পর্যন্ত সমাধান হয়ে গেল যখন আমি slf4j-jdk14-1.7.5.jarজাভা লিবসে যুক্ত করলাম ।

সম্পূর্ণ slf4j প্যাকেজটি http://www.slf4j.org/download.html এ পান


4

এই সমস্যাটি সমাধান করতে দয়া করে নীচে নির্ভরশীলতা যুক্ত করুন।

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

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.25</version>
</dependency>

আমি কেবল প্রথম নির্ভরতা অন্তর্ভুক্ত করেছি - অন্য উত্তরে নির্দেশিত হিসাবে - এবং এটি কার্যকর হয়। উভয় নির্ভরতা আমার জন্য সমস্যার সমাধান করে না।
রুবিআরিক

এবং ইন্টেলিজের বান্ডিলযুক্ত মেভেনের পরিবর্তে স্থানীয় মেভেন ব্যবহার করতে চান।
আব্দুল গাফফার

4

জার অন্তর্ভুক্তি এবং খাঁটি মাভেন সমাধানগুলির বিকল্প হিসাবে, আপনি এটি খাঁটি থেকে অন্তর্ভুক্ত করতে পারেন গ্রেড সহ গ্রেড ।

সংস্করণ জন্য উদাহরণ 1.7.25

// https://mvnrepository.com/artifact/org.slf4j/slf4j-simple
api group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'

এটি আপনার build.gradleফাইলের নির্ভরতার মধ্যে রাখুন ।


3

আমি স্ট্রুটস 2 + স্প্রিং প্রকল্পে কাজ করছি। সুতরাং এটি একটি নির্ভরতা প্রয়োজনslf4j-api-1.7.5.jar

আমি যদি প্রকল্পটি চালাই তবে আমি ত্রুটি পেয়ে যাচ্ছি

"Org.slf4j.impl.StaticLoggerBinder" শ্রেণি লোড করতে ব্যর্থ

আমি যুক্ত করে আমার সমস্যাটি সমাধান করেছি slf4j-log4j12-1.7.5.jar

সুতরাং সমস্যাটি সমাধান করতে আপনার প্রকল্পে এই বয়াম যুক্ত করুন।


3

হিসাবে SLF4J ম্যানুয়াল রাজ্যের

জাভা-ইউটিল.লগিং, লগব্যাক এবং লগ 4 জে যেমন বিভিন্ন লগিং ফ্রেমওয়ার্কের জন্য সরল লগিং ফেকাড ফর জাভা (এসএলএফ 4 জে) একটি সরল মুখোমুখি বা বিমূর্ততা হিসাবে কাজ করে।

এবং

আপনি আপনার শ্রেণীর পথে একটি বাঁধাই যুক্ত করার সাথে সাথে সতর্কতাটি অদৃশ্য হয়ে যাবে।

সুতরাং আপনি কোন বাঁধাই ব্যবহার করতে চান তা চয়ন করা উচিত।

NoOp বাইন্ডিং (slf4j-nop)

নোপের জন্য বাইন্ডিং, নিঃশব্দে সমস্ত লগিং বাতিল করে।

Https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-nop&core=gav এ নতুন সংস্করণটি দেখুন

সরল বাইন্ডিং (slf4j-সহজ)

সমস্ত ইভেন্টগুলি System.err এ আউটপুট করে। কেবলমাত্র INFO এবং উচ্চ স্তরের বার্তা মুদ্রিত হয়। এই বাঁধাই ছোট অ্যাপ্লিকেশনগুলির প্রসঙ্গে কার্যকর হতে পারে।

Https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-simple&core=gav এ নতুন সংস্করণটি দেখুন

লগিং ফ্রেমওয়ার্কের জন্য বাইন্ডিংস (java.util.logging, লগব্যাক, লগ 4 জে)

আপনি যদি কোনও ফাইলে লগ লিখতে চলেছেন তবে এই বাইন্ডিংগুলির একটি আপনার প্রয়োজন।

Https://www.slf4j.org/manual.html#projectDep এ বর্ণনা এবং নির্দেশাবলী দেখুন


আমার মতামত

আমি সুপারিশ করবে Logback কারণ এটি একটি উত্তরাধিকারী এর log4j প্রকল্পের।

এর জন্য বাইন্ডিংটির সর্বশেষ সংস্করণটি https://search.maven.org/search?q=g:ch.qos.logback%20AND%20a:logback-classic&core=gav এ দেখুন

আপনি বাক্সের বাইরে কনসোল আউটপুট পান তবে আপনার যদি ফাইলে লগ লিখতে হয় তবে কেবল এইরূপে বা ঠিক তে FileAppenderকনফিগারেশন রাখুন :src/main/resources/logback.xmlsrc/test/resources/logback-test.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/logs.log</file>

        <encoder>
            <pattern>%date %level [%thread] %logger{10} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>

    <logger level="DEBUG" name="com.myapp"/>
</configuration>

(ম্যানুয়ালটিতে বিশদ বিবরণ দেখুন: https://logback.qos.ch/manual/configration.html )


3
     <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.21</version>
    </dependency>

উপরে উল্লিখিত নির্ভরতা pom.xML ফাইলে রাখুন


তবে সর্বশেষতম সংস্করণটি পরীক্ষা করে দেখুন।
ব্যবহারকারী 1053510


1

এসএলএফ 4 জে অফিসিয়াল ডকুমেন্টেশন অনুসারে

Org.slf4j.impl.StaticLoggerBinder শ্রেণি লোড করতে ব্যর্থ

এই সতর্কতা বার্তাটি রিপোর্ট করা হয় যখন org.slf4j.impl.StaticLoggerBender শ্রেণি মেমরিতে লোড করা যায় না। শ্রেণি পথে কোনও উপযুক্ত এসএলএফ 4 জাই বাঁধন সন্ধান করতে না পারলে এটি ঘটে। শ্রেণীবদ্ধ পথে slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar বা লগব্যাক-ক্লাসিক.জারের একটি (এবং কেবল একটি) স্থাপন করা সমস্যার সমাধান করা উচিত।

জিনিসগুলি সম্পন্ন করতে কেবল আপনার ক্লাসপথে slf4j api.jar এর সাথে এই জারটি যুক্ত করুন । শুভকামনা করছি



1

পেয়ারা 5.191 তে একই সমস্যার মুখোমুখি হয়েছিল

jcl-over-slf4j একসাথে slf4j-log4j12 সমস্যার সমাধান করেছেন

<properties>
  <slf4j.version>1.7.29</slf4j.version>
</properties>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
  <type>jar</type>
</dependency> 

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>${slf4j.version}</version>
</dependency>        

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>${slf4j.version}</version>
</dependency>

0

আমি জানি এই পোস্টটি কিছুটা পুরানো, তবে অন্য কেউ যদি এই সমস্যার মুখোমুখি হন:

আপনার ক্লাসস্প্যাটে slf4j-jdk14-XXXjar যুক্ত করুন (যেখানে XXX সংস্করণ নম্বর - যেমন slf4j-jdk14-1.7.5.jar)।

এইচটিএইচ পিটার


1
আপনি কি পরামর্শ দিচ্ছেন যে ক্লাসপাথ সমস্যা সমাধানের জন্য ব্যবহারকারীদের JDK1.4 লগইনে ফিরে যেতে হবে? এই FAQ এন্ট্রিটিও দেখুন: slf4j.org/faq.html#need_to_recompile
mWs

0

আমি জেনাকে ব্যবহার করি এবং আমি পম.এক্সএমএলে সহযোগিতা নির্ভরতা যুক্ত করি

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

আমি slf4j- সহজ যোগ করার চেষ্টা করি তবে এটি "SLF4J:" org.slf4j.impl.StaticLoggerBender "শ্রেণি লোড করতে ব্যর্থ হয়েছে তবে লগব্যাক-ক্লাসিক আরও বিশদ তথ্য প্রদর্শন করে।

সরকারী নথি


0

সমাধানটি তাদের অফিসিয়াল ওয়েবসাইটে নির্দেশ করা হয়েছে:

Org.slf4j.impl.StaticLoggerBinder শ্রেণি লোড করতে ব্যর্থ

এই সতর্কতা বার্তাটি রিপোর্ট করা হয় যখন org.slf4j.impl.StaticLoggerBender শ্রেণি মেমরিতে লোড করা যায় না। শ্রেণি পথে কোনও উপযুক্ত এসএলএফ 4 জাই বাঁধন সন্ধান করতে না পারলে এটি ঘটে। Slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar বা লগব্যাক-ক্লাসিক.জারের একটি (এবং শুধুমাত্র একটি) শ্রেণিতে পাঠানো সমস্যার সমাধান করা উচিত। SINCE 1.6.0 SLF4J সংস্করণ 1.6 অনুসারে, বাধ্যতামূলক অনুপস্থিতিতে, এসএলএফ 4 জে কোনও অপারেশন (এনওপি) লগার প্রয়োগে ডিফল্ট হবে। আপনি যদি কোনও অ্যাপ্লিকেশন প্যাকেজিংয়ের জন্য দায়বদ্ধ হন এবং লগিংয়ের বিষয়ে চিন্তা না করেন, তবে আপনার অ্যাপ্লিকেশনটির শ্রেণীর পথে slf4j-nop.jar স্থাপন করা এই সতর্কতা বার্তা থেকে মুক্তি পাবে। নোট করুন যে এম্বেড থাকা উপাদান যেমন লাইব্রেরি বা ফ্রেমওয়ার্কগুলি কোনও এসএলএফ 4 জাই বাইন্ডিংয়ের উপর নির্ভরতা ঘোষণা করে না তবে কেবল slf4j-api এর উপর নির্ভর করে।

সমাধান: আমি ইন্টেলিজের উপর খাঁটি গবেষণা ব্যবহার করে আমার প্রকল্পে যুক্ত করেছি এবং আমি slf4j-jdk14.jar বেছে নিয়েছি।


0

সম্ভবত আপনার সমস্যাটি ছিল <scope>test</scope>(কিছু কিছু ক্ষেত্রেও <scope>provided</scope>), যেমনটি @ থাংরাজের কথা বলা হয়েছে

ডকুমেন্টেশন বলে:

এই সুযোগটি ইঙ্গিত করে যে অ্যাপ্লিকেশনটির সাধারণ ব্যবহারের জন্য নির্ভরতা প্রয়োজন হয় না এবং এটি কেবল পরীক্ষার সংকলন এবং কার্যকরকরণের পর্যায়গুলির জন্য উপলব্ধ। পরীক্ষার নির্ভরতাগুলি ট্রানজিটিভ নয় এবং কেবল পরীক্ষা এবং প্রয়োগের ক্লাসপাথগুলির জন্য উপস্থিত।

সুতরাং, যদি পরীক্ষার উদ্দেশ্যে আপনার নির্ভরশীলতার প্রয়োজন না হয় তবে আপনি এর পরিবর্তে (যা আপনি এমভিএনরেপোসিটরিতে দেখবেন ) ব্যবহার করতে পারেন :

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.24</version>
    <scope>test</scope>
</dependency>

কোনও স্কোপ ছাড়াই ( অন্য কোনও সুযোগ সরবরাহ না করা হলে ডিফল্টরূপে স্কোপ সংকলন হবে ):

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>  
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-nop</artifactId>
   <version>1.7.25</version>
</dependency>

এটি একই হিসাবে:

 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
 <dependency>  
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-nop</artifactId>
   <version>1.7.25</version>
   <scope>compile</scope>
 </dependency>

0

এখানে আমার 5 সেন্ট ...

পরীক্ষা চালানোর সময় আমারও একই সমস্যা ছিল। সুতরাং আমি পরীক্ষার রানটাইমের জন্য একটি বাস্তবায়ন যোগ করে এটি ঠিক করেছি। আমি এই প্রকল্পের জন্য গ্রেড ব্যবহার করছি।

// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic

টেস্টরুনটাইম গ্রুপ: 'ch.qos.logback', নাম: 'লগব্যাক-ক্লাসিক', সংস্করণ: '1.2.3'


0

আমার জন্য সমস্যাটি ছিল: হাইবারনেট ব্যবহার করে, আমি দেখেছি এটি ইতিমধ্যে slf4j ব্যবহার করেছে এবং এটি আমার ক্লাসপথে ইতিমধ্যে ছিল, তাই আমি এটি ব্যবহার করার সিদ্ধান্ত নিয়েছি। পরবর্তী পদক্ষেপ - slf4j এর জন্য সংযোজনকারী যুক্ত করা, তাই আমি মাভেনকে যুক্ত করেছি:

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

কিন্তু এটি ত্রুটি দিয়ে ব্যর্থ! এসএলএফ 4 জে: "org.slf4j.impl.StaticLoggerBender" শ্রেণি লোড করতে ব্যর্থ হয়েছে

সমাধানটি ছিল: হাইফারনেটের slf4j এর নির্ভরতা সংস্করণ 1.7.26 এবং আমি সংক্ষিপ্ত সংস্করণ নির্ভরতা 1.7.25 যোগ করেছি । সুতরাং যখন আমি এটি স্থির করেছি - সব ঠিক হয়ে গেছে


0

আমি কোনও নির্ভরতা যোগ করিনি, আমি কেবল সেগুলি ব্যবহার করার উপায়টি পরিবর্তন করেছি।

পূর্বরূপ কোড

(আপনি যদি ইলাস্টিক অনুসন্ধান সংস্করণ <7.0 ব্যবহার করেন তবে এই কোডটি কমেন্ট করুন)

IndexRequest indexRequest = new IndexRequest(
  "twitter",
  "tweets",
  id // this is to make our consumer idempotent
).source(record.value(), XContentType.JSON);

বর্তমান কোড

IndexRequest indexRequest = new IndexRequest("tweets")
  .source(record.value(), XContentType.JSON)
  .id(id); // this is to make our consumer idempotent

আমি বাল্করেকোস্ট ব্যবহার করছি এবং এর সাথে আমি সেই ত্রুটিটি সরিয়েছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.