Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError.


  • 原因:slf4j-log4j12模塊的目的是將對 SLF4J 的調用重定向到 log4j。log4j-over-slf4j模塊的目的是將對 log4j 記錄器的調用重定向到 SLF4J。如果 SLF4J 與slf4j-log4j12.jar綁定, 並且log4j-over-slf4j.jar也存在於ClassPath中,第一次調用 SLF4J 或 log4j logger 后不可避免地會立即發生StackOverflowError

  • 解決方案:

    1. 點擊項目,Maven——Show Diagram

      image-20211202205450909

    2. 搜索slf4j-log4j12(這里我已經排除依賴了,就用log4j-to-slf4j舉例子)

      image-20211202210118351

    3. 找到對應的依賴雙擊,再右鍵——Exclude即可

      image-20211202210506227

    4. 最后觀察pom文件可以看到即可,重新啟動項目即可

      <dependency>
      	<groupId>com.youzan.cloud</groupId>
      	<artifactId>dennis-chain-baihuo-biz</artifactId>
      	<version>${project.version}</version>
      	<exclusions>
      		<exclusion>
      			<artifactId>slf4j-log4j12</artifactId>
      			<groupId>org.slf4j</groupId>
      		</exclusion>
      	</exclusions>
      </dependency>
      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM