Log 작성 - Logback과 Log4j2에 대한 TMI

gentledot·2021년 5월 31일
0

테스트와 로깅

목록 보기
5/5

Logging

무엇을 정리해야 할까?

  • 개발 환경에 셋팅되어 있어 뭣모르고 사용한 Logger에 대해 아는대로 정리해보기 위해 포스트를 작성했습니다.
  • 알게 된 내용이 있을 때마다 계속해서 정리할 예정입니다!
  • 단, 틀린 내용을 정리할 수도 있으니 잘못된 내용을 보신다면 정정 댓글 부탁드리겠습니다. :)

1. Spring Boot (Starter)에 기본 설정된 Logger는 Logback이다.

  • Spring Boot Api Docs.

  • starter에서는 spring-boot-starter-logging 패키지에 logger가 담겨있다.

  • Spring Boot 2.5 버전 기준으로 spring-boot-starter-web 패키지 내에는 logback이 확인되지 않았다.

  • spring-boot-starter-jdbc 패키지 내에서 확인되었음.

    • 다른 logger를 설정하려면 exclude 한 뒤 라이브러리를 추가하면 된다.
      <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-jdbc</artifactId>
              <exclusions>
                  <!-- 내장 Logger 제외 -->
                  <exclusion>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-logging</artifactId>
                  </exclusion>
              </exclusions>
      </dependency>
    • 메이븐에서 의존성 구조를 확인하려면 다음의 명령어를 사용한다.
      	```
      mvn dependency:tree

    2. SLF4J의 풀네임은 Simple Logging Facade For Java 이다.

  • SLF4J

  • slf4j는 logging framework 에 대한 추상화를 제공하여 원하는 logging framework를 연결하기 쉽도록 한다.

  • 따라서, slf4j 단독으로는 사용할 수 없고 다른 logging framework와 연결해야 한다.

  • LoggerFactory.getLogger() 를 사용하여 생성되는 Logger 객체는 slf4j 객체이다.

    3. Logback에서 \<layout> 태그가 deprecated 되었다.

  • LogBack - layoutInsteadOfEncoder

  • <layout> 태그 단독으로 사용하는건 권장되지 않음.

  • <encoder> 태그로 변경하거나 해당 태그로 <layout> 태그를 감싸는 형식으로 작성하는 걸 권장하고 있다.

    • layout은 ch.qos.logback.classic.PatternLayout 타입으로 기본 할당된다.
profile
그동안 마신 커피와 개발 지식, 경험을 기록하는 공간

0개의 댓글