본문 바로가기
컴퓨터공학/스프링

[Slf4j] 스프링의 디버깅 도구 Slf4j Library

by 유리병 2023. 12. 10.

목차


 

 

Slf4j를 사용하는 이유

개발을 하면서 로그를 띄울 때 System.out.println()을 사용하는 경우가 있다.

그러나 System.out.println()으로 디버깅을 할 경우 배포한 이후에도 해당 메세지가 콘솔에 계속 출력되고, 이는 심각한 성능 저하로 이어진다. 그렇다고 매번 디버깅 메세지를 썼다가 지웠다 하기는 매우 번거롭다. 

 

Slf4j를 사용하면 메세지의 log level을 설정할 수 있고, 개발 단계 로그의 log level과 배포 단계 로그의 log level을 구분하면 log4j.xml을 통해 쉽게 특정 단계의 로그만 출력되도록 할 수 있다.

log level과 log4j.xml에 관한 글

 

 

 

Slf4j 사용방법

log4j.xml 설정 변경

log4j.xml의 Application Loggers의 log level을 debug레벨로 변경한다. 

 

log 출력 코드 작성

@Slf4j Annotaion을 Class 위에 작성하면 log 필드가 자동으로 생성된다.

이 log 필드를 사용해 로그를 출력할 수 있다.

@Controller
@RequestMapping("/seller/product")
@Slf4j
public class SellerProductController {
	... ...
	@GetMapping("/regist.do")
	public String regist(Model model) {
		log.debug("로그출력테스트!!!");
		... ...
	}		
}

 

출력 결과 확인

 

이렇게 디버그 단계의 로그를 확인할 수 있다.

 

배포를 할 경우에는 log4j.xml의 application logger의 log level을 info로 바꿔서 배포하면 배포서버의 로그 발생을 줄일 수 있다.