2014-07-06 45 views
2

我遇到了一個記錄我的應用程序的問題。應用程序使用slf4j和logback機制來實現日誌記錄。ch.qos.logback.classic和slf4j-log4j12

記錄器被初始化等

私有靜態最後記錄器LOG = LoggerFactory.getLogger(Classname.class);

但一些它不能夠生成日誌。在調試過程中,我發現錯誤

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/Users/xxx/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/Users/xxx/.m2/repository/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 

然後我試圖從該申請是根據分組父pom.xml的文件中刪除SLF4J-log4j12綁定。但仍然無法生成日誌。

後來我發現在應用IML文件中的條目下方

<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:slf4j-log4j12:1.7.5" level="project" /> 

當我刪除的條目我的應用程序能夠生成日誌......目前我沒有任何線索生根粉使用該文件作爲參考IML文件正在生成?因此,Incase我需要排除slf4j-log4j12內置到我的項目中,我應該刪除它在pom.xml嗎?

即使我刪除它在pom.xml日誌不會生成?

請讓我知道我應該如何解決日誌沒有得到生成的問題。

+0

您是否設置了記錄器配置?你有編寫依賴到你的pom中的logback庫嗎? – Hannes

+1

Logback配置是在文件logback.xml中設置和提供的。也排除在pom文件中 xxx/xxx/Logging.class Mugu

+0

必須使用來自使用該庫的依賴項的gav coords來排除依賴項。不是班級名稱。 – Hannes

回答

1

首先你是在正確的軌道上。您需要使用POM來排除slf4j-log4j12和commons-logging。

iml文件由Intelli生成,您需要獲取intellij以重新導入pom以更新依賴項。最好的辦法是將intellij設置爲在pom.xml更改時始終自動重新導入。