2016-06-28 220 views
5

我的一個Spring Boot應用程序在其Maven 測試階段出現問題。Spring Boot在測試過程中使用/tmp/spring.log文件

在測試和「常規」應用程序運行時期間,Spring Boot應用程序使用的logback配置文件與src/main/resources/logback-spring.xml非常相似。該配置文件(可傳遞地)包括logb​​ack配置文件base.xmlfile-appender.xml。這些配置文件設置了logback屬性LOG_FILE=/tmp/spring.log

我想最好的做法是文件/tmp/server.log歸用戶和組${MY_SPRING_BOOT_APPLICATION}所有。

Jenkins以用戶jenkins運行。 jenkins沒有/tmp/server.log的寫入權限。因此,Jenkins執行JUnit測試失敗。

  • 什麼是配置日誌記錄,以便它在運作良好的最佳方式詹金斯積累與檢驗,使其建立每天滾動日誌利用Spring Boot's SysV init.d service functionality(這使登錄到時/var/log/)?
  • 如果同時運行兩個或多個Spring Boot應用程序,將同時修改文件/tmp/spring.log(並因此被破壞)嗎?

回答

5

在我的春節,啓動應用程序,我已經加入到<property name="LOG_TEMP" value="./logs"/>src/test/resources/logback-test.xml

<?xml version="1.0" encoding="UTF-8"?> 

<configuration scan="true"> 
    <property name="LOG_TEMP" value="./logs"/> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 

    <logger name="com.example" level="INFO"/> 


    <root level="WARN"> 
     <appender-ref ref="CONSOLE"/> 
    </root> 

</configuration> 

這種方式,Maven的測試過程中,一個單獨的日誌文件將在當前(測試)工作目錄中創建。

Props to welcor for helping out

+1

請確保您將屬性重寫放在屬性之前,如此處所示。 –

相關問題