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

[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로 바꿔서 배포하면 배포서버의 로그 발생을 줄일 수 있다.