스프링 부트는 기본적으로 로그 라이브러리로 SLF4J 라이브러리와 Logback 라이브러리를 사용한다.
(실무에서도 대부분 이들 라이브러리를 사용한다)
(SLF4J는 인터페이스이고, Logback은 그 구현체이다)
로그를 사용해야 하는 이유
1. 로그 메시지가 여러 정보들을 보면 디버깅이 편해진다.
-> 여러 정보에는 프로세스 ID, 쓰레드 ID, 로그 레벨, 어느 클래스에서 로그가 찍혔는지!! 등
2. 기존의 방식인 System.out.println()을 사용하면 개발 서버 뿐만 아니라 운영 서버에서도 로그가 찍히는 단점이 있다.
-> 이는 시스템 성능을 저하시킬 뿐만 아니라 전혀 클린하지도 않다. Logback을 사용하면 application.property에서의 로그 레벨 지정을 통하여 운영 서버에서 필요한 로그 레벨만 출력하도록 지정할 수가 있다.여담으로 개발서버에서는 trace 레벨과 debug 레벨이 필요할 수가 있겠지만 운영서버에서는 필요x.(만약 동시에 수만명이 요청을 해서 모든 레벨의 로그가 다 찍힌다고 생각을 해 보자!! 엄청난 성능 저하가 올 것이다). 스프링 부트는 별도의 설정이 없으면 디폴트로 로그 레벨을 info로 한다.
3. 개발자가 개발 중 로그 레벨을 설정함으로써 운영 서버 상태를 파악하기 쉽다.
-> 예를 들어, 매우 중요한 비지니스 로직에서 예외가 터졌을 때 catch 블록 내에 개발자가 로그 레벨을 WARN 또는 Error로 설정을 해 놓으면 운영 서버 모니터링 시스템에서 문제를 쉽게 인식할 수가 있게 된다.
실무 기준
개발 서버 : debug 레벨 설정
운영 서버 : info 레벨 설정
'Springあるある' 카테고리의 다른 글
static class에 @Component 사용 시 주의점! (0) | 2025.01.06 |
---|---|
Request Body 전체 조회!!(Feat. HttpEntity) (0) | 2025.01.03 |
@ModelAttribute 실행 프로세스 (0) | 2025.01.03 |
@RequestParam(required=true)의 주의점 (0) | 2025.01.03 |
@ResponseBody(Feat. produces) (0) | 2025.01.03 |