java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
錯誤原因:jar沖突
解決辦法,排除沖突jar
1、jar是否引用正確,我是到官網選擇使用的 https://logging.apache.org/log4j
具體如下:
<properties> <slf4j.version>1.7.25</slf4j.version> <log4j2.version>2.11.2</log4j2.version> </properties> <dependencies> <!--日志 log4j2 使用(log4j、sl4j、log4j2都可以使用)--> <!--sl4j--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> <scope>runtime</scope> </dependency> <!--log4j2 核心包--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2.version}</version> </dependency> <!--如果現有組件使用Log4j 1.x並且您希望將此日志記錄路由到Log4j 2,則刪除所有log4j 1.x依賴項並添加以下內容--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>${log4j2.version}</version> </dependency> <!--如果現有組件使用Apache Commons Logging 1.x並且您希望將此日志記錄路由到Log4j 2,則添加以下內容但不刪除任何Commons Logging 1.x依賴項。--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>${log4j2.version}</version> </dependency> <!--如果現有組件使用SLF4J並且您希望將此日志記錄路由到Log4j 2,則添加以下內容但不刪除任何SLF4J依賴項。--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j2.version}</version> </dependency> <!--為了正確支持和處理Web應用程序的ClassLoader環境和容器生命周期,需要一個額外的模塊。該模塊僅在運行時需要。此外,如果您在OSGi環境中使用servlet,請確保您的首選版本的servlet API已經可用(例如,如果您要使用3.0,但是您還加載了2.5,請確保它們都已加載)。--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>${log4j2.version}</version> </dependency> </dependencies>
2、在當前項目找到那個jar包含了sl4j,如果知道就不用找
這樣就找到了
然后就排除slf4jjar就OK了
附帶簡單版log4j2.xml
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="debug" monitorInterval="30"> <!--先定義所有的appender --> <appenders> <!--這個輸出控制台的配置 --> <Console name="Console" target="SYSTEM_OUT"> <!--控制台只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch) --> <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" /> <!--這個都知道是輸出日志的格式 --> <PatternLayout pattern="[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n"/> </Console> </appenders> <!--然后定義logger,只有定義了logger並引入的appender,appender才會生效 --> <loggers> <!--建立一個默認的root的logger --> <root level="info"> <appender-ref ref="Console" /> </root> </loggers> </Configuration>
然后clean,compile run項目 就OK