Logback과 slf4j 간단한 예제
# Back-End/Spring

Logback과 slf4j 간단한 예제

 

 

 

로그 레벨

  • TRACE : 추적 레벨은 DEBUG보다 좀 더 상세한 정보를 표시
  • DEBUG : 프로그램을 디버깅하기 위한 정보를 표시 (운영 서버에서는 표시하지 않도록 설정)
  • INFO : 상태 변경과 같은 정보성 로그를 표시
  • WARN : 처리 가능한 문제, 시스템 에러의 원인이 될 수 있는 경고성 메시지를 표시
  • ERROR : 요청을 처리하는 중 오류가 발생한 경우 표시

※ 로그 레벨로 설정한 값 이상의 로그가 출력됨 (EX: 로그 레벨 INFO : INFO, WARN, ERROR가 출력됨)

 

 

Yaml 단순 설정

# log
logging:
  level:
    root: INFO
    org:
      hibernate:
        SQL: OFF
        type:
          descriptor:
            sql:
              BasicBinder: OFF
  file:
    name: ${user.dir}/log/application.log  # 로그 파일 위치. 프로젝트 최상위 경로에 log 폴더가 생성됨
  logback:
    rolling-policy:
      max-history: 7 # 로그 파일 삭제 주기
      max-file-size: 10MB # 로그 파일 하나당 최대 파일 사이즈

더 복잡한 설정을 사용하려면 resource 폴더에 logback-spring.xml 파일을 생성하여 설정

  • 대소문자 구별 X
  • 크게 appender와 logger를 사용하여 설정
  • appender - 로그의 출력 형태(콘솔, 파일) 설정
  • logger - 로거마다 이름을 부여하여 사용, 패키지별 원하는 출력 레벨값 설정 (전역 설정 최상위 로거 = root)

 

테스트

로깅

log.trace("가장 디테일한 로그");
log.debug("디버깅용 로그");
log.info("정보성 로그");
log.warn("경고");

try{
    throw new Exception("Test Exception");
} catch (Exception e) {
    log.error("에러",e);
}

 

결과

2022-08-23 10:22:39.085  INFO 6783 --- [nio-8080-exec-2] c.d.study.web.controller.TestController  : 정보성 로그
2022-08-23 10:22:39.085  WARN 6783 --- [nio-8080-exec-2] c.d.study.web.controller.TestController  : 경고
2022-08-23 10:22:39.089 ERROR 6783 --- [nio-8080-exec-2] c.d.study.web.controller.TestController  : 에러

java.lang.Exception: Test Exception
	...

 

현재 INFO 레벨까지만 출력되도록 설정하여 trace, debug는 출력되지 않음

728x90