logback



Logging

개발 중이나 완료 후에 발생할 수 있는 오류를 대비하기 위해 디버깅하거나 운영 중인 에플리케이션을 모니터링 하기 위해 필요한 정보를 기록하는 것. 그 정보를 로그라고 한다.

애플리케이션 실행에 대한 추적을 기록하기 위한 일종의 메시지이다.


Java Logging Framework
  • native java.util.logging
  • Log4J
  • Logback
  • SLF4J(Simple Logging Facade for Java)
  • tinylog


logback


  • Maven dependency

    <dependency>
        <groupId>net.rakugakibox.spring.boot</groupId>
        <artifactId>logback-access-spring-boot-starter</artifactId>
        <version>2.7.1</version>
        <scope>runtime</scope>
    </dependency>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.7</version>
        </dependency>
    </dependencies>
    

    *위치는 src/main/resources/ 아래


  • 설정항목

    • Level

      • TRACE - DEBUG - INFO - WARN - ERROR 순으로 높은 레벨이다. 출력 레벨 이상의 로그만 출력한다.
    • Appender

      이벤트마다 로그를 기록하는 기능을 처리하는 객체. 로그의 출력 위치와 출력 형식 등을 설정한다. 기본 Appender는 아래와 같다.

      1. ConsoleAppender: 콘솔에 로그 출력
      2. FileAppender: 지정 파일에 로그 기록
      3. RollingFileAppender: FileAppender을 상속받는다. 구체적인 환경 및 패턴으로 기록 가능
    • Logger

      로그 기능을 수행하는 객체. 각 Logger마다 name을 통해 구분한다.


  • 설정

    1. application.properties

      spring.profiles.active=local
      logging.config=classpath:logback-${spring.profiles.active}.xml
      
    2. logback-local.xml(로컬환경)

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration scan="true" scanPeriod="30 seconds">
          <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
              <encoder>
                  <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%-5level] : %msg%n</pattern>
              </encoder>
          </appender>
          <root level="debug">
              <appender-ref ref="STDOUT"/>
          </root>
      </configuration>