2017-07-14 102 views
0

寫入簡單的POC來驗證和測試Spring Boot和log4j2的兼容性。一旦成功,我會將其轉移到真正的應用程序。這裏所描述找到 How to set up Spring Boot and log4j2 properly?使用Log4j2進行Spring Boot日誌記錄

,並試圖建議:

請參閱我的POC源代碼: https://github.com/Dennyss/SpringBootLog4j2POC

我知道/瞭解Spring版本,並從log4j2兼容性 Spring-Boot logging with log4j2?

但仍不工作。問題是應用程序日誌和Spring日誌都只能打印到控制檯。

請參考Maven依賴下面(來自POC):

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</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> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.6.2</version> 
    </dependency> 
</dependencies> 

如果我不排除春節的的logback和不加引導起動log4j2然後應用程序日誌打印到應用程序文件,但春節日誌根本不打印。我覺得有問題的地方有依賴關係。感謝任何幫助。

回答

1

根據Spring Boot Logging文檔,可以使用logging.config屬性指定日誌記錄配置文件的位置。我注意到你的start.sh腳本通過了-Dlog4j.configurationFile。通常,這對於直接Log4J 2集成來說已經足夠了,但Spring Boot使用logging.config

切換到這之後,將其寫入日誌文件:

java -Dlogging.config=/share/LogPOC/log4j2.xml -cp poc.jar:libs/* com.poc.logger.Application 
+0

今天這個嘗試,得到了錯誤消息安慰:「發現錯誤StatusLogger沒有log4j2配置文件使用默認配置:只記錄錯誤的安慰。」但都很好。我在application.log中看到應用程序日誌,在spring-framework.log中看到Spring,在other.log看到其他所有視圖。謝謝你的幫助! – Denys

+0

根據log4j文檔,它期望'-Dlog4j.configurationFile',不確定它是否被正確初始化(錯誤消息解釋相同)。 – Denys

相關問題