본문 바로가기
▶ Back-End/Java

SLF4J 기본 사용 방법

by 오늘도 코딩 2023. 8. 7.
728x90
반응형

spring-boot-starter 에는 SLF4J와 Logback이 기본으로 설정 돼있다.

*자세한 설명 생략

 

 

▷ SLF4J란?

 

    - Simple Logging Facade 4 Java

 

    - 다양한 Logging Framework를 하나의 방식으로 사용할 수 있는 방법을 제공

        *Logging Framework : java.util.logging, logback, log4j

 

    - Spring Boot는 SLF4J + Logback을 사용

        *Logback : SLF4J의 구현체이자 Logging Library(log4j보다 더 좋은 성능)

 

 

▷ 기본 사용 방법

*Spring boot에서 아래 2가지 방법 중 선택해서 사용

    ① Logger객체 직접 생성

    ② @Slf4j(Lombok)

 

@Slf4j
@SpringBootApplication
public class TestApplication {

	public static void main(String[] args) {
		SpringApplication.run(TestApplication.class, args);

        	// @Slf4j(Lombok)
        	log.info("Hello @Slf4j info");
        	log.debug("Hello @Slf4j debug");
        	log.trace("Hello @Slf4j trace");
        	log.warn("Hello @Slf4j warn");
        	log.error("Hello @Slf4j error");

        	// LoggerFactory
        	Logger logger  = LoggerFactory.getLogger(TestApplication.class);
        	logger.info("Hellow Logger info");
        	logger.debug("Hellow Logger debug");
        	logger.trace("Hellow Logger trace");
        	logger.warn("Hellow Logger warn");
        	logger.error("Hellow Logger error");
	}

}

*SLF4J defalut logging level "INFO"

 

 

▷Log Level 

 

TRACE  < DEBUG < INFO < WARN < ERROR

 

TRACE : DEBUG 보다 상세한 정보

DEBUG : 프로그램을 디버깅하기 위한 정보

INFO : 상태 변경과 같은 정보

WARN : 처리가 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지

Error : 요청을 처리하는 중 발생한 오류 정보

 

 

▷ Logback 기본 설정 방법

 

- Spring boot에서 아래 3가지 방법 중 선택해서 사용

*①,② 중복 설정 시 ① 적용

    ① application.properties

    ② resources / logback-spring.xml

        *.xml은 직접 생성 

    ③ resources / logback.xml

    *Spring Boot에 대한 설정 전에 logback.xml이 설정되므로 제어할 수 없다.

 

① application.properties

## log Color
spring.output.ansi.enabled=always

## logging Level
logging.level.root=WARN

 

② resources / logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- <property> : logback-spring.xml에서 사용될 변수 값 선언 -->
    <!-- 로그 메세지 형식 -->
    <!-- 로그 레벨 색상 설정 : %highlight([%-5level]) -->
    <property name="LOG_MSG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight([%-5level]) : %msg%n" />
    
    <!-- <appender> : 로그 형태 설정 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!-- <encoder> : 지정한 형식으로 표현 될 로그 메시지를 변환 -->
        <encoder>
            <!-- 위에서 선언한 변수 사용 -->
            <pattern>${LOG_MSG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- <root> : 전역 설정 적용 -->
    <!-- <logger> : 지역적으로 선언 가능(logger 설정이 default로 적용) -->
    <root level="INFO">
        <!-- <appender-ref> : 위에서 설정한 appender 적용 -->
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

 

 

▷ 참고

 

[스프링부트 (5)] Spring Boot 로그 설정(1) - Logback

[스프링부트 (5)] Spring Boot Log 설정(1) - Logback 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 부트 Log 설정 - 로그백] 입니다. : -) 1. Logback 이란? 특징? - 자바 오픈소스 로깅 프레임워크, SLF4J의

goddaehee.tistory.com

 

[스프링부트] Spring Boot 로그 설정 - Logback

Logback이란? Java에서 Log 기록을 위한 Open-Source framework. SLF4J의 구현체입니다. Spring Boot에서는 default로 설정되어 있어서 사용 시 별도로 라이브러리를 추가하지 않아도 됩니다. spring-boot-start-web 안에

yjh5369.tistory.com

 

 

▷ 관련 글

 

로그파일 생성과 관리(logback-spring.xml)

로그파일을 생성하고 관리를 위한 반복 정책을 설정하는 방법 *자세한 설명 생략 ▷ logback-spring.xml *Cassandra 관련 부분은 무시(다양한 로그를 한 파일에 담을 수 있다.) ${LOG_MSG_PATTERN} %green(%d{yyyy-MM

coding-today.tistory.com

 

 

728x90
728x90

댓글