더북(TheBook)

로깅 구성

대부분의 애플리케이션은 몇 가지 로깅 형태를 제공한다. 애플리케이션이 직접 로깅하지 않아도 애플리케이션에 사용된 라이브러리는 확실하게 활동 내역을 로깅한다. 기본적으로 스프링 부트는 콘솔에 INFO 레벨 로그를 표시하려고 로그백(Logback)(http://logback.qos.ch)으로 로깅을 설정한다. 애플리케이션이나 다른 예제를 실행하면서 이미 많은 INFO 레벨 로그를 보았을 것이다.

로깅 구성을 완전히 제어하려면 클래스패스 루트(src/main/resources)에 logback.xml 파일을 생성해야 한다.

Tip 로그백을 다른 로깅 구현체로 변경하기

보통 로그백은 아주 적합한 로깅 구현체라서 다른 것으로 변경할 필요가 거의 없었을 것이다. 하지만 로그백 대신 Log4j나 Log4j2를 사용한다면 해당 구현체에 대응하는 적당한 스타터를 추가하고, 의존성을 변경하여 로그백을 제외시켜야 한다.

메이븐 빌드에서는 루트 스타터 의존성을 이용해서 전이적으로 끌어오는 기본 로깅 스타터를 따로 떼어 로그백을 제외시킬 수 있다.


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

그레이들에서는 configurations 부분에 제외 코드를 넣는 방법이 가장 쉽다.


configurations {
    all*.exclude group:'org.springframework.boot', module:'spring-boot-starter-logging'
}

기본 로깅 스타터를 제외했으므로 이제 사용하고 싶은 로깅 구현체에 대응하는 스타터를 포함하면 된다. 메이븐 빌드에서는 Log4j를 다음과 같이 추가할 수 있다.


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

그레이들 빌드에서는 Log4j를 다음과 같이 추가할 수 있다.


compile('org.springframework.boot:spring-boot-starter-log4j')

Log4j2를 사용하려면 spring-boot-starter-log4jspring-boot-starter-log4j2로 바꾼다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.