1. 程式人生 > >eclipse maven SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder

eclipse maven SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder

現象:執行eclipse maven build,console 有紅色日誌如下:

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.

即便新增對應的dependency仍然有此日誌,有紅色日誌雖然不影響程式執行但還是感覺不舒服,隨一探究竟。

原因探究過程如下:
首先在Goals執行目標後新增 -X如下圖:

再次執行 maven build,console 有日誌如下:

Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)

Maven home: E:\eclipse-jee-indigo-SR2-win32\workspace\cccc\EMBEDDED
Java version: 1.7.0_09, vendor: Oracle Corporation
Java home: C:\Java\jdk1.7.0_09\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

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.

maven build 命令執行用的是內嵌的maven,版本為3.0.4。

於是新增maven配置為執行外部maven如下圖,並更新對應配置檔案。

在次執行maven build命令,報錯如下圖:

期間workspace刪除專案重新匯入,執行依然有錯;刪除maven專案下除src其它目錄,除pom.xml其它檔案,重新匯入執行maven build依然有紅色日誌

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.

後經測試首先在run config視窗刪除原來執行配置ccc。

在在專案右鍵執行RUN AS-->MAVEN BUILD彈出視窗重新配置執行目標為compile -X,點apply,debug。

console沒了紅色日誌輸出,輸出如下:

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800)
Maven home: D:\apache-maven-3.0.5
Java version: 1.7.0_09, vendor: Oracle Corporation
Java home: C:\Java\jdk1.7.0_09\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

總結:出現紅色日誌輸出

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.

在eclipse的幾個不同版本eclipse-jee-indigo-SR2-win32,eclipse-jee-kepler-R-win32,eclipse-jee-kepler-SR1-win32,myeclipse blue 2013均出現類似提示,雖增加對應依賴還是有紅色日誌輸出。

經實踐當將內嵌maven換為外部版本(我的是apache-maven-3.0.5),新建的工程執行maven目標是不會在出現紅色日誌輸出。舊的工程刪掉重新匯入還是不可以,在maven執行目標後加引數-X,有上面執行後日志可知執行時用的還是嵌入maven,測試當在一個空的workspace匯入舊的沒有配置檔案工程執行不會出現紅色日誌。感舊的工程等刪除workspace .metadata目錄,需重新配置workspace配置麻煩。遂探究背後原因發現eclipse在執行run as後命令後會儲存對應配置,即使刪除工程,run as config視窗配置依然存在,導致執行run as用舊的配置,正確方法是刪除run as config 視窗配置關閉配置視窗,然後執行run as 後面命令彈出的配置視窗重新配置執行命令,apply後,debug或run時才會用新的配置執行工程。