본문 바로가기
개발/spring, spring boot

[Spring Boot] 로깅

by 가시죠 2021. 7. 12.
반응형
스프링 부트는 SLF4J (Simple Logging Facade for Java)를 이용하여 로그를 관리한다.
궁극적으로는 LogBack을 사용한다.

Facade : 로깅 프레임워크가 아니며, 복잡한 로딩 프레임워크를 쉽게 사용할 수 있게 도와준다. 다른 퍼사드를 사용해도 되며, 프레임워크와 의존성이 낮기 때문에 쉽게 교체도 가능하다.

 

LogBack : Log4j 개발자가 기존 Log4j를 대체하기 위해서 만들었으며, Log4j에 비해 성능이나 기능 면에서 많은 장점을 제공한다.

 

logback.xml로 복잡하게 설정하던 부분들을 아래 application.properties에서 간단하게 설정이 가능하다.

 

로깅 샘플

package com.tistory.hitomis;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Service;

@Service
public class LoggingRunner implements ApplicationRunner {

    // SLF4j에서 제공하는 LoggerFactory를 생성하고 인자값으로 현재 클래스를 입력한다.
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Override
    public void run(ApplicationArguments args) throws Exception {
        logger.trace("TRACE logging");
        logger.debug("DEBUG logging");
        logger.info("INFO logging");
        logger.warn("WARN logging");
        logger.error("ERROR logging");
    }
}

 

로깅 설정 샘플

## application.properties

# 로그레벨유형 : trace, degug, info, warn, error
# 만약 warn으로 설정할 경우 warn과 error만 출력된다.

## 로깅 세팅
# 로그 레벨을 설정, 패키지별로 다르게 설정이 가능하다
# logging.level.패키지명
logging.level.org.springframework=ERROR
logging.level.com.tistory.hitomis=trace
# 로그 경로와 파일명
logging.file.name=C:/log/hitomisLog.log
# 1개의 로그파일 용량제한
logging.logback.rollingpolicy.max-file-size=1MB
# 로그용량 초과 시 패턴
logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd}-%i.log

 

로깅 결과

 

 

 

반응형

댓글