2017-08-02 63 views
0

在我的Java的主要方法我有爲什麼不找春天Log4j追加

LogManager.getLogger().error("Log message"); 
    new ClassPathXmlApplicationContext("spring_config.xml"); 

將會產生

Log message 
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

這表明log4j的配置好的,問題是春天,它使用SLF4J。

我不相信log4j2.xmlspring_config.xml提供任何相關的信息。如果你想看,請在評論中提問。

我懷疑問題是與庫的版本,可能是某種衝突,所以你得到我的maven pom.xml,以及無論如何依賴。

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>4.1.5.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.8.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.8.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.7.16</version> 
    </dependency> 

我想知道slfj4-log4j12,但我沒有看到任何更好的。 slf4j試圖連接到log4j v1嗎?日誌庫版本的這種泥is令人生氣。

如何安撫這些警告?

回答

0

提供log4j.xml配置會停止警告並啓用彈簧日誌記錄,因此問題出在slf4j實現slf4j-log4j12需要log4j版本1配置文件。

更換與

<dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-slf4j-impl</artifactId> 
     <version>2.6.2</version> 
    </dependency> 

的SLF4J實現依賴導致了只使用log4j2.xml配置控制檯輸出春季出現。