Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging Spring引导在测试期间使用/tmp/Spring.log文件_Logging_Spring Boot_Logback - Fatal编程技术网

Logging Spring引导在测试期间使用/tmp/Spring.log文件

Logging Spring引导在测试期间使用/tmp/Spring.log文件,logging,spring-boot,logback,Logging,Spring Boot,Logback,我的一个Spring引导应用程序在Maven测试阶段出现问题 在测试和“常规”应用程序运行时期间,Spring引导应用程序都使用一个类似于的logback配置文件。此配置文件(可传递)包括logback配置文件和。这些配置文件设置了一个logback属性LOG\u FILE=/tmp/spring.LOG 我想最好的做法是,文件/tmp/server.log归用户和组${MY\u SPRING\u BOOT\u APPLICATION}所有 Jenkins以用户身份运行Jenkinsjenkin

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

在测试和“常规”应用程序运行时期间,Spring引导应用程序都使用一个类似于的logback配置文件。此配置文件(可传递)包括logback配置文件和。这些配置文件设置了一个logback属性
LOG\u FILE=/tmp/spring.LOG

我想最好的做法是,文件
/tmp/server.log
归用户和组
${MY\u SPRING\u BOOT\u APPLICATION}
所有

Jenkins以用户身份运行
Jenkins
jenkins
没有
/tmp/server.log
的写入权限。因此,JUnit测试在由Jenkins执行时失败

  • 配置日志记录的最佳方法是什么,以便它在Jenkins构建过程中通过测试运行良好,从而在利用时设置每日滚动日志记录(将日志放入
    /var/log/
  • 如果有两个或多个spring启动应用程序同时运行,文件
    /tmp/spring.log
    是否会被同时修改(并因此被破坏)

在我的Spring Boot应用程序中,我将
添加到
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>


.

我们遇到一个问题,在同一台服务器上运行多个Spring引导模块会导致多个进程尝试写入
/tmp/Spring.log
。我们通过更新
logback spring.xml
以在日志名中包含
${PID}
来解决这个问题:

<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>




相关的Spring文档:

请确保将属性覆盖放在属性之前,如下所示。
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring-${PID}.log}"/>