我的一个Spring Boot应用程序在其Maven 测试 阶段遇到了问题。
在测试和“常规”应用程序运行时期间,Spring Boot应用程序都使用与相似的logback配置文件src/main/resources/logback- spring.xml。此配置文件(以传递方式)包括logback配置文件base.xml和file- appender.xml。这些配置文件设置了 logback属性 LOG_FILE=/tmp/spring.log。
src/main/resources/logback- spring.xml
base.xml
file- appender.xml
LOG_FILE=/tmp/spring.log
我认为最好的做法是文件/tmp/server.log由用户和组拥有${MY_SPRING_BOOT_APPLICATION}。
/tmp/server.log
${MY_SPRING_BOOT_APPLICATION}
Jenkins以用户身份运行jenkins。jenkins没有对的写入权限/tmp/server.log。因此,当由Jenkins执行时,JUnit测试失败。
jenkins
/var/log/
/tmp/spring.log
在我的Spring Boot应用程序中,我添加<property name="LOG_TEMP" value="./logs"/>到src/test/resources/logback-test.xml:
<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测试期间,将在当前(测试)工作目录中创建一个单独的日志文件。
欢迎 提供帮助的道具。