새소식

반응형
Java/Spring

logback 설정

  • -
반응형

개발환경 : Spring Boot, thymeleaf

 

Logback 이란?

Java에서 사용하는 로깅 라이브러리인 log4j 후속 버전이다.

Spring Boot 에 기본으로 설정되어 있어서 별도의 라이브러리를 추가하지 않아도 사용할 수 있다.

 

 

아래는 Spring Boot thyemelaf 설정까지 완료된 다음 시점입니다.

Test 를 위한 Controller, templates/ 경로에 test.html 을 만들었습니다.

 

 

1. resources/ 경로에 logback-spring.xml 파일을 생성한다.

 

2. logback-spring.xml 에 로그백 설정하기

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
	<property name="CONSOLE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%thread]) %highlight([%-3level]) %logger{5} - %msg %n" />

    <!-- Console appender 설정 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>${CONSOLE_PATTERN}</Pattern>
        </encoder>
    </appender>
    
    <logger name="com.test.controller" level="WARN" additivity="false">
    	<appender-ref ref="STDOUT" />
    </logger>
    
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

 

<appender name="STDOUT" class=" ch.qos.logback.core.ConsoleAppender "> ... </appender>

 

<appender> 태그는 Log 메세지가 출력될 대상을 결정한다.

  • ch.qos.logback.core.ConsoleAppender : 콘솔창에 로그를 보여준다.
  • ch.qos.logback.core.FileAppender : 지정된 파일에 로그를 저장한다. 최대 보관 일 수 등 설정할 수 있다.
  • ch.qos.logback.core.rolling.RollingFileAppender : 여러개의 파일을 롤링, 순회하면서 로그를 저장한다.
  • ch.qos.logback.classic.net.SMTPAppender : 로그를 메일에 찍어 보낸다.
  • ch.qos.logback.classic.db.DBAppender : DB 에 로그를 저장한다.

가장 많이 사용하는건 ch.qos.logback.core.ConsoleAppender 과 ch.qos.logback.core.rolling.RollingFileAppender 이다.

name 속성을 통해 property 값이나 추가할 logger 의 이름을 설정한다.

 

<root level="INFO"> ... </root>

 

<root> 태그는 전역 logger 를 설정하기 위한 태그이다.

전역 logger 에 대해선 INFO Level 의 log 가 찍힌다.

 

<logger name="com.test.controller" level="WARN" additivity="false"> ... </logger>

 

<logger> 태그는 name 속성을 통해 class 별로 log 를 분리할 수 있다.

본인은 com.test.controller class 에 대한 logger 를 추가했다.

 

주의할점은 기본적으로 appender는 누적되는 성질을 가지고 있다.

logger 는 자신에게 부착된 appender 이외에 자신의 상위 logger 의 appender 에게

로그를 전달한다. 그러므로 같은 appender 를 다른 logger 에 등록한다면

로그의 중복출력에 주의해야 한다.

이러한 상위 logger 에게 전달하지 않기 위해서는 "additvity" 속성을 false 로 줘야한다.

=> additivity="false"

 

<property name="" value="" />

 

logger 에서 사용될 상수 변수이다.

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.