Spring Boot在测试期间使用/tmp/spring.log文件

Abd*_*ull 11 logging logback spring-boot

我的一个Spring Boot应用程序在Maven 测试阶段出现问题.

在测试和"常规"应用程序运行时,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测试失败.

  • 配置日志记录的最佳方法是什么,以便在Jenkins 构建测试 期间运行良好,以便在利用Spring Boot的SysV init.d服务功能(将日志放入)时设置每日滚动日志记录/var/log/
  • /tmp/spring.log如果有两个或更多Spring Boot应用程序同时运行,是否会同时修改文件(因此会被破坏)?

Abd*_*ull 13

在我的Spring Boot应用程序中,我添加<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>
Run Code Online (Sandbox Code Playgroud)

这样,在Maven测试期间,将在当前(测试)工作目录中创建单独的日志记录文件.

道具welcor的帮忙.

  • 确保将属性覆盖放在 &lt;include &gt; 属性之前,如下所示。 (2认同)