林's

[JUnit] 로그단계 낮추는 방법 본문

프로그래밍/웹백앤드

[JUnit] 로그단계 낮추는 방법

풀림이 2019. 9. 28. 00:04

logback이슈.pdf
0.13MB

 

스프링 프레임워크에서는 단위 테스트를 위해 JUnit 을 사용합니다.

이 때 로그를 남기기 위해 log4j 를 확장한 logback을 사용하여 기록을 남깁니다.

 

그런데 test 를 하다보면 이 로그를 보기 싫거나 출력 단계를 조절하고 싶을 때가 있습니다.

흔히들, application.propertise 를 통해 스프링 프레임워크가 쓰는 @Value 어노테이션에 들어가는 값(환경변수)들을 바꿀 수 있다는 사실을 알고계실 겁니다.

 

이럴 때는 부트 기준으로 총 2단계를 거치셔야합니다.

test/resources 패키지에 application.propertise 파일을 만드신 다음

아래의 환경변수를 추가합니다.

  1. application.propertise

    logging.level.org.springframework=ERROR
    logging.level.root=ERROR
    spring.main.banner-mode=off

    스프링프레임워크의 로그레벨을 ERROR 이상일 경우만 출력하게 바꾸고

    스프링프레임워크의 배너를 출력하지 않게 설정하였습니다.

그 다음, 같은 test/resources 아래에 logback-test.xml 파일을 추가한 다음

아래의 태그들을 입력해주세요.

 

  1. logback-test.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <include resource="org/springframework/boot/logging/logback/base.xml" />
        <logger name="org.springframework" level="ERROR"/>
    </configuration>

 

이렇게 하신다음, 테스트를 진행해보시면, ERROR 레벨 이상의 로그만 출력되는 것을 확인하실 수 있을거예요.

아예 로그를 끄고 싶으신 분들은, application.propertise 파일과 logback-test.xml 파일에서 level 을 OFF로 해주시면 된답니다 : )

 

참고 문서:

https://www.mkyong.com/spring-boot/spring-boot-test-how-to-stop-debug-logs/

 

Spring Boot Test – How to disable DEBUG and INFO logs – Mkyong.com

Run the Spring Boot integration test or unit test, many annoying DEBUG and INFO logs are displayed in the console. P.S Tested with Spring Boot 2 Console 2019-03-04 13:15:25.151 INFO --- [ main] .b.t.c.SpringBootTestContextBootstrapper : 2019-03-04 13:15:25

www.mkyong.com

Comments