본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/spring

[spring] Logging Facade(로깅 퍼사드) 와 Logger(로거)

by 미노드 2023. 7. 13.

Logging Facade : - 로거 API를 추상화해둔 interface  (Commons Logging, SLF4j )
Logger : 로깅을 제공하는 class (Log4j, Log4j2, Logback (로거))

스프링 부트는 Commons Logging 를 기본으로 사용

  • 스프링 개발 당시 SLF4j가 없어서
  • 하지만 최종적으로 Logback(SLF4j의 구현체) 으로 찍히게 된다.

스프링 부트 로깅

  • --debug (일부 핵심 라이브러리만 디버깅 모드로)
  • --trace (전부 다 디버깅 모드로)
  • 컬러 출력 : spring.output.ansi.enabled
  • 파일 출력 : logging.file or logging.path
  • 로그 레벨 조정 :logging.level.패키지 = 로그 레벨

커스텀 로그 설정 파일 사용하기

resources 아래

  • logback-spring.xml 사용

작성법

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="패키지 경로" level="DEBUG"/>
</configuration>
  • 또는, 로그 설정파일 이름을 원하는데로 설정 후 application-properties에 등록해두면 불러오기 가능함.
    (stg, prd 환경을 구분할 때 주로 사용)

로거를 Log4j2로 변경하기

  • 기존 스프링 부트 스타터 웹에서 Logback 설정을 exclusion 시킨다.
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
            <groupId>org.springframework.boot></groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        <exclusions>    
</dependency>
  • 그 후 log4j2 의존성을 추가해준다.
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2></artifactId>
</dependency>