2017-01-25 76 views
1

我有一個spring-boot項目,我正在從Log4j轉換到Log4j2。我遵循文檔here中的步驟。具體來說,我修改了我的log4j.xml以符合log4j2標準並將其重命名爲log4j2.xml我已使用log4j2中的<Configuration status="debug">設置啓用了對log4j2的調試,因此我可以看到log4j2啓動。在我的春天啓動的應用程序的啓動,我用下面的系統設置:Log4J仍然運行Log4j2

-Dlog4j.configurationFile = log4j2.xml -Dorg.jboss.logging.provider = log4j2

我可以看到我的log4j2.xml在調試輸出開始追加程序等,然後最終log4j2消息,指出:

測井提供商:org.jboss.loggin.Log4j2LoggerProvider經由系統屬性中找到

我使用下列jar:

編譯組: 'org.slf4j',名稱: 'SLF4J-log4j12',版本: '1.7.12'

編譯組:「組織.apache.logging.log4j',名稱:'log4j-api',版本:'2.4.1'

編譯組:'org.springframework.boot',名稱:'spring-boot-starter-log4j2',版本:'1.4.0.RELEASE'

但是,我仍然從Log4j的接收消息:

的log4j:警告沒有附加目的地可以找到的記錄 的log4j:WARN請初始化log4j的系統正常 log4j的WARN見http://logging.apache.org/log4j/1.2/faq.html#noconfig更多信息

所以我的基本問題是如何關閉log4j並只使用log4j2?是否有我將從log4j2收到的消息,明確告訴我何時正確配置了它?我缺少使用Log4j2的特殊配置嗎?

+0

刪除除'spring-boot-starter-log4j2'之外的所有日誌依賴項。 –

回答

1

您必須僅將這些依賴關係用於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> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-slf4j-impl</artifactId> 
      <version>${log4j.slf4j.impl.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-web</artifactId> 
      <version>${log4j2.version}</version> 
      <scope>runtime</scope> 
     </dependency> 

此外,您還需要從spring-boot中排除spring-boot-starter-logging。像這樣

0

Log4j2常見問題現在有一個項目excluding conflicting dependencies

我認爲你需要這樣的:

<dependencies> 
    <dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
    <scope>provided</scope> 
    </dependency> 
</dependencies> 
0

我的項目是使用log4j2彈簧引導。

以下是pom.xml的一部分。請嘗試。

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-log4j2</artifactId> 
    </dependency> 
</dependencies>