Logback

  • SLF4J의 구현체 중 하나
  • Log4J를 토대로 만든 프레임워크

구성요소

  1. Logger : 실제 로깅을 수행하는 구성요소
    • 출력레벨 조정가능 (ERROR > WARN > INFO > DEBUG > TRACE)
  2. Appender : 로그를 어디에 출력할지에 대한 기술
    • ConsoleAppender, FileAppender, DBAppender 등
  3. Encoder : 로그를 어떻게 출력할지에 대한 기술 (포맷 정의)
    • layout은 더이상 사용되지 않음

logback-spring.xml

  • 설정파일 참조순서
    1. classpath에 logback-spring.xml
    2. logback-spring.xml 없으면 .yml(.properties)
    3. 둘다 있으면 .yml(.properties) 적용 후 logback-spring.xml 적용
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-4relative] %green([%thread]) %highlight(%-5level) %boldWhite([%C.%M:%yellow(%L)]) - %msg%n</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <springProfile name="local,develop">
        <logger name="org.springframework.web" level="DEBUG"/>

        <!--else-->
        <root level="DEBUG">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>

    <springProfile name="staging,prod">
        <logger name="org.springframework.web" level="INFO"/>

        <root level="INFO">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
    
</configuration>