Developer/Spring eGov4.0 (Java11, Tomcat9)

Spring , log message

단님 2024. 10. 27. 22:47
728x90

 

로깅 레벨의 의미 및 설정

 

로깅 레벨은 애플리케이션의 실행 상황을 다각도로 파악할 수 있도록 도와주는 각기 다른 중요도를 가진 로그 메세지이다

기본설정은 info 레벨이며 , 필요시 debug , trace 레벨로 조정이 가능하다

조정 : application.properties 에서 설정

 

 - logging level
TRACE : DEBUG 보다 더 상세한정보를 표시한다.
DEBUG : 내부 실행 상황을 추적하기 위한 정보 (MyBatis SQL log 확인가능.)
INFO : 주요 실행정보 , 상태 변경 사항 등을 표시한다.
WARN : 잠재적인 위험을 알리는 경고성 메세지
ERROR : 오류 발생헀으나 애플리케이션이 계속 실행 가능한 상황
FATAL : 애플리케이션 주지를 요구하는 심각한 에러 발생 

 

logger 사용 방법 및 예시

 

1.  Logger 클래스 이용

 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

로거 생성시 전역에서 사용가능한 static final 의 형태로 선언한다.

 

  • 로그 메세지 출력 방법
    • String 결합방식 : + 연산자를 이용해 문자열 합산
    • {} 활용 방식 : 변수값 위치를 지정하여 쉽게 출력한다 (printf와 유사하다)
String name = "홍길동";
int age = 99;
logger.info("Log Test => name : {} , age => {}", name, age);

 

  • 출력 결과
INFO c.e.demo01.controller.HomeController : Log Test => name : 홍길동 , age => 99

 

 

2. Lombok의 @Log4j2 사용

 

import lombok.extern.log4j.Log4j2;

@Log4j2
log.info("Lombok의 @Log4j2 사용");

Lombok의 @Log4j2 애너테이션을 통해 손쉽게 로거를 설정할 수 있다.

 

  • Lombok의 특징: {} 형식으로 변수 대입이 불가하여 +로 문자열 연산을 사용한다.
log.info("Lombok Test [info]=> name : " + name + ", age => " + age);

 

 

로그 레벨 설정 (application.properties)
# 기본 전체 레벨 설정 (필요시 사용)
#logging.level.root=info
# 특정 패키지 이하 로그 레벨 설정
logging.level.com.example.demo01=debug

이를 통해 특정 패키지나 전체 어플리케이션에 대해 세분화된 로그 레벨을 설정 할 수 있다.