테스트 중에 Spring Boot에서 /tmp/spring.log 파일을 사용
내 Spring Boot 애플리케이션 중 하나가 Maven 테스트 단계에서 문제를 일으킵니다.
Spring Boot 응용 프로그램은 테스트 중과 "일반" 응용 프로그램 런타임 모두에서 와 매우 유사한 로그백 구성 파일을 사용합니다.이 구성 파일(일시적)에는 로그백 구성 파일 및 가 포함됩니다.이 구성 파일은 로그백 속성을 설정합니다. LOG_FILE=/tmp/spring.log
.
그 파일을 사용하는 것이 가장 좋은 방법인 것 같습니다./tmp/server.log
사용자 및 그룹이 소유함${MY_SPRING_BOOT_APPLICATION}
.
젠킨스가 사용자로 실행됨jenkins
.jenkins
에 대한 쓰기 권한이 없습니다./tmp/server.log
따라서 Junit 테스트는 Jenkins에 의해 실행될 때 실패합니다.
- Jenkins With Test 동안 잘 작동하고 Spring Boot의 SysV init.d 서비스 기능을 활용할 때 매일 롤링 로깅을 설정하기 위해 로깅을 구성하는 가장 좋은 방법은 무엇입니까?
/var/log/
)? - 윌 파일
/tmp/spring.log
동시에 두 개 이상의 Spring Boot 애플리케이션이 실행되는 경우 수정(따라서 중단)됩니까?
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 모듈을 실행하여 여러 프로세스가 다음에 쓰기를 시도하는 문제가 발생했습니다./tmp/spring.log
업데이트를 통해 이 문제를 해결했습니다.logback-spring.xml
포함하는${PID}
로그 이름:
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
로.
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring-${PID}.log}"/>
관련 스프링 문서: https://docs.spring.io/spring-boot/docs/1.5.x/reference/html/howto-logging.html#howto-configure-logback-for-logging
언급URL : https://stackoverflow.com/questions/38081145/spring-boot-uses-tmp-spring-log-file-during-testing
'programing' 카테고리의 다른 글
구성 파일을 통해 WCF 웹 서비스 참조 URL 경로를 동적으로 전환합니다. (0) | 2023.07.31 |
---|---|
HTML에서 한 이미지를 다른 이미지 위에 어떻게 배치합니까? (0) | 2023.07.31 |
대각선 스트립의 다각측량 행렬 (0) | 2023.07.31 |
교차 오리진 요청 차단됨 (0) | 2023.07.31 |
Asp.net Core의 Ajax 도우미 태그 설명서 (0) | 2023.07.31 |