Spring Boot在测试过程中使用/tmp/spring.log文件

问题描述

在我的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>

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

欢迎 提供帮助的道具

解决方法

我的一个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以用户身份运行jenkinsjenkins没有对的写入权限/tmp/server.log。因此,当由Jenkins执行时,JUnit测试失败。

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