SLF4J: শ্রেণীর পথে একাধিক SLF4J বাইন্ডিং রয়েছে


206

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

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

15
সমাধান ব্যবহার <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> (pom.xml এর) dependecies যে সৃষ্ট বিরোধ সমাধান সমস্যা সাহায্য
user1493140



7
হয়তো এটা এই প্রশ্নের একটি উত্তর (স্বয়ংক্রিয় উত্তর) যোগ করতে পারেন এবং হিসাবে "গৃহীত" এটা চিহ্নিত করতে, তাই প্রশ্ন দেখা যাবে ভালো হতে পারে হিসাবে "মীমাংসিত" তাই searchs মধ্যে
রবার্তো

1
রবার্তো, মতামতের জন্য ধন্যবাদ আমি মন্তব্যটি থেকে সমাধানটি অনুলিপি করে উত্তর হিসাবে পোস্ট করেছি।
ব্যবহারকারী 1493140

উত্তর:


125

সংঘাতের কারণে নির্ভরশীলতাগুলিতে (pom.xML এর) নিম্নলিখিত বর্জনকে যুক্ত করে সমাধান করা হয়েছে।

<exclusions>
    <exclusion>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
</exclusions> 

10
যা নির্ভরতা এই ক্ষেত্রে দ্বন্দ্ব সৃষ্টি করেছিল, আমার উপর নির্ভরতা গাছ রয়েছে slf4j এর 3 টি উল্লেখ রয়েছে
পিইউজি

22
লগ 4 জে কীভাবে আপনার পথে এমভিএন নির্ভরতা চালাচ্ছে তা জানতে: গাছ এবং চিরুনি দিয়ে তারপরে উপরের স্নিপেটটি আপনার pom.xML- এ নির্ভরতার সাথে যুক্ত করুন
সাইবার-সন্ন্যাসী

1
@ user1493140 এখনও এটি আমার পক্ষে কাজ করছে না। <d dependency> <groupId> log4j </groupId> <artifactId> log4j </artifactId> <version> 1.2.17 </version> <এক্সক্লুশন> <এক্সক্লুশন> <groupId> org.slf4j </groupId> <আর্টিফ্যাক্ট আইডি> slf4j- লগ 4 জে 12 </artifactId> << এক্সক্লুশন> </ এক্সক্লুশন> </d dependency>
অশোক কুমার গণেশান

1
আমার জন্য আর একটি জার যুদ্ধের কারণ। আমি slf4j-nop এবং slf4j-jdk14 আইডি সহ শিল্পকর্মগুলি বাদ দিতে হয়েছিল। যে নির্ভরতা আমার জন্য দ্বন্দ্ব সৃষ্টি করেছিল তা ছিল ক্লোভার-ম্যাভেন-প্লাগইন
ইহেবিহেব

সংস্করণ ( slf4j-log4j12) কি সবার জন্য প্রযোজ্য? বা আমাদের এমভিএন নির্ভরতা: ট্রি থেকে সংস্করণটি খুঁজে পাওয়া উচিত ?
লেই ইয়াং

59

গ্রেডল সংস্করণ;

configurations.all {
    exclude module: 'slf4j-log4j12'
}

2
মূল অ্যাপ্লিকেশন থেকে মডেলগুলি অটোমেশন ফ্রেমওয়ার্কে আমদানি করা .. এটি আমার সমস্যাটি গ্রেডের সাথে সমাধান করেছে। TY।
উইল

1
এটি করার কোনও পিঁপড়া সংস্করণ রয়েছে কি?
বালাজী বোগগ্রাম রমনারায়ণ

1
না: পিপীলিকা নির্ভরতা সচেতন সরঞ্জাম নয়। আপনার বিল্ডটিকে গ্রেড করার জন্য দৃ grad়তার সাথে বিবেচনা করুন।
ম্যাথু মার্ক মিলার

1
আপনার বিল্ডটি এসবিটি :) তে দৃ strongly়রূপে পুনরুদ্ধার করুন :)
আইওলিও

2
চমৎকার। কয়েক ঘন্টা নির্ভরতা থেকে আমাকে বাঁচাল!
jseals

24

ত্রুটিটি সম্ভবত এর মতো আরও তথ্য দেয় (যদিও আপনার জারের নামগুলি আলাদা হতে পারে)

এসএলএফ 4 জে: বাঁধার সন্ধান [জার: ফাইল: / ডি: / জাভা / রেপোসিটরি / সিচ / কোস / ব্লগব্যাক / ব্লগব্যাক-ক্লাসিক / ১.২.৩ / ব্লগব্যাক-ক্লাসিক ১.২.৩.জার! / Org / slf4j / ইমপিএল / স্ট্যাটিকলগারবাইন্ডার .ক্লাস] এসএলএফ 4 জে: বাঁধার সন্ধান পেয়েছে [জার: ফাইল: / ডি: / জাভা / রেপোসিটরি / অর্গ / পেচে / ব্লগিং / ব্লগ 4 জ / ব্লগজ-এসএফ 4j- আইপিএল / 2.8.2/log4j-slf4j-impl-2.8.2.jar ! /org/slf4j/impl/StaticLoggerBinder.class]

লক্ষ্য করা গেছে যে দ্বন্দ্বটি নাম logback-classic-1.2.3ও নামকরণ দুটি জার থেকে আসে log4j-slf4j-impl-2.8.2.jar

mvn dependency:treeএই প্রকল্পে পম.এক্সএমএল পিতামহীন ফোল্ডারটি চালান :

নির্ভরতা গাছের সংঘাত

এখন আপনি যাকে অগ্রাহ্য করতে চান তা চয়ন করুন (একটি সূক্ষ্ম প্রচেষ্টা গ্রহণ করতে পারে এতে আমার আরও সহায়তা প্রয়োজন)

আমি সিদ্ধান্ত নিয়েছি যে কোনও spring-boot-starter-data-jpa( আমদানি করা উপরের নির্ভরতা) এর মাধ্যমে spring-boot-starterএবং এর মাধ্যমে আমদানি করা পোমটি ব্যবহার করবেন না spring-boot-starter-logging:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

উপরের পম একই ফাইলটিতে কনফিগার করা spring-boot-starter-data-jpaব্যবহার করবে spring-boot-starter, যা বাদ দেয় logging(এতে রয়েছে logback)


1
পরিচয় করানোর জন্য আপনাকে ধন্যবাদ mvn dependency:tree। এটি অনেক সাহায্যকারী ...
জান লোকম্যান

10

এসবিটি সংস্করণ:

exclude("org.slf4j", "slf4j-log4j12")ক্রমবর্ধমান অন্তর্ভুক্ত থাকা নির্ভরতাতে যুক্ত করুন slf4j-log4j12। উদাহরণস্বরূপ, Log4j 2.6 দিয়ে স্পার্ক ব্যবহার করার সময়:

libraryDependencies ++= Seq(
  // One SLF4J implementation (log4j-slf4j-impl) is here:
  "org.apache.logging.log4j" % "log4j-api" % "2.6.1",
  "org.apache.logging.log4j" % "log4j-core" % "2.6.1",
  "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.6.1",
  // The other implementation (slf4j-log4j12) would be transitively
  // included by Spark. Prevent that with exclude().
  "org.apache.spark" %% "spark-core" % "1.5.1" exclude("org.slf4j", "slf4j-log4j12")
)

1
এসবিটি কী বোঝায়?
পেট্রাস থেরন

3
সাধারণ বিল্ড সরঞ্জাম *
বেনি

4
<!--<dependency>-->
     <!--<groupId>org.springframework.boot</groupId>-->
     <!--<artifactId>spring-boot-starter-log4j2</artifactId>-->
<!--</dependency>-->

আমি এটি মুছে ফেলার মাধ্যমে সমাধান করেছি: বসন্ত-বুট-স্টার্টার-লগ 4 জ 2


পরিষ্কার নয়: আপনি কি xML বিভাগের উপরে মুছতে / মন্তব্য করতে চান, বা যুক্ত করবেন?
লেই ইয়াং

3

আমি কেবল সেই জার ফাইলটিকে উপেক্ষা / সরিয়েছি।

এখানে চিত্র বর্ণনা লিখুন


3

কেবলমাত্র প্রয়োজনীয় নির্ভরতা ব্যবহার করুন, সমস্ত নয় :)))। আমার জন্য, লগিং প্রক্রিয়াটির স্বাভাবিক কাজের জন্য আপনার এই নির্ভরতা দরকার অন্যকে pom.xML থেকে বাদ দিন

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

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

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

3

এটি স্ট্যাটিকলগারবাইন্ডার। ক্লাস শ্রেণীর কারণে পৃথক দুটি পৃথক জারের কারণে সমস্যাযুক্ত issue এই ক্লাসটি লগব্যাক-ক্লাসিক -১.২.৩.জার এবং একই শ্রেণীর রেফারেন্স থেকে লগ -4-এসএলএফ 4 জে-ইমপ্ল -2.10.0.jar থেকেও উল্লেখ করা হয়েছে। ক্লাসপথে জার দুটি। তাই তাদের মধ্যে দ্বন্দ্ব রয়েছে। ক্লাসপথ [src / প্রধান / সংস্থান] এ log4j2.xML ফাইল থাকা সত্ত্বেও লগ ফাইলটি উত্পন্ন হওয়ার কারণ নয়।

আমরা জারগুলির মধ্যে একটি নির্বাচন করেছি, আমি লগ 4j-slf4j-impl-2.10.0.jar ফাইলটি ব্যবহার করার এবং লগব্যাক-ক্লাসিক -১.২.৩.জার ফাইলটি বাদ দেওয়ার পরামর্শ দিই। সমাধান:
পম ফাইলটি খুলুন এবং নির্ভরতা হায়ারার্কি [গ্রহন] দেখুন বা এমভিএন নির্ভরতা চালান : নির্ভরতা গাছ এবং নির্ভরতা ডাউনলোড করে এমন নির্ভরতার উত্স খুঁজে পেতে ট্রি কমান্ড। পরস্পরবিরোধী নির্ভরতা পান এবং তাদের বাদ দিন। স্প্রিংবুট অ্যাপ্লিকেশনটির জন্য এটি ব্যবহার করে দেখুন।

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-logging</artifactId>
                    </exclusion>
                </exclusions>
        </dependency>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

This is working fine for me after struggling a lots.

2

... org.codehaus.mojo cobertura-maven- প্লাগইন 2.7 পরীক্ষা ch.qos.logback লগব্যাক-ক্লাসিক সরঞ্জাম com.sun ...

## আমি এটি দিয়ে স্থির করেছি

... org.codehaus.mojo cobertura-maven- প্লাগইন 2.7 পরীক্ষা ch.qos.logback লগব্যাক-ক্লাসিক সরঞ্জাম com.sun ...


2

আমার জন্য, লগ 4j থেকে লগব্যাকে স্যুইচ করার পরে এটি একটি Eclipse / Maven ইস্যু হিসাবে পরিণত হয়েছিল। আপনার .classpathফাইলটি দেখুন এবং স্ট্রিংটি অনুসন্ধান করুন"log4j"

আমার ক্ষেত্রে আমার এখানে নিম্নলিখিতগুলি ছিল: <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.7.1/slf4j-log4j12-1.7.1.jar"/> <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.17/log4j-1.2.17.jar" />

ফাইলটি থেকে এন্ট্রিগুলি সরানো (বা আপনি এটি পুনরায় জেনারেট করতে পারেন) সমস্যাটি স্থির করেছে।


2

আমার জন্য উত্তরটি ছিল একটি মেভেন পুনর্নির্মাণকে বাধ্য করা। গ্রহনে:

  1. প্রকল্পে ডান ক্লিক করুন-> ম্যাভেন -> মাভেন প্রকৃতি অক্ষম করুন
  2. প্রকল্প-> বসন্ত সরঞ্জাম> মাভেন নির্ভরতা আপডেট করুন - এ ডান ক্লিক করুন
  3. প্রকল্প-> কনফিগার> মেভেন প্রকল্পে রূপান্তর করুন - এ ডান ক্লিক করুন

0

আমারও একই সমস্যা ছিল। আমার pom.xML এ আমার দুটোই ছিল

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.2.1.RELEASE</version>
    </dependency>

আমি যখন বসন্ত-বুট-স্টার্টার-ওয়েব নির্ভরতা মুছে ফেলেছি, তখন সমস্যার সমাধান হয়েছিল।


-1

সমন্বয় <scope>provided</scope>এবং <exclusions>আমার জন্য কাজ করে নি।

আমাকে এটি ব্যবহার করতে হয়েছিল:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <scope>system</scope>
    <systemPath>${project.basedir}/empty.jar</systemPath>
</dependency>

empty.jarআক্ষরিক কিছুই এতে নেই এমন একটি জার ফাইল যেখানে ।


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