로깅 SLF4J
로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다.
- System.out.print() 대신 사용한다. 성능도 좋고 로그를 상황에 맞게 설정으로 조절 할 수 있다.
- 불필요한 로그를 콘솔에 남기지 않을 수 있다. 따로 파일로 남겨줄 수 있다.
- 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다.
[ 스프링 부트 로깅 라이브러리 - spring-boot-starter-logging ]
SLF4J - http://www.slf4j.org
Logback - http://logback.qos.ch
쉽게 이야기해서 SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다.
실무에서는 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용한다.
💡로그 사용 선언
@Slf4j : 롬복 사용 가능
private Logger log = LoggerFactory.getLogger(getClass());
private static final Logger log = LoggerFactory.getLogger(Xxx.class)
💡올바른 로그 사용법
❌ log.trace("trace log=" + name); -- > 출력 하지 않아도 의미 없는 연산이 일어나게된다. 메모리 낭비
⭕ log.trace("trace log={}",name);
🍫 사용예시
@RestController
public class LogTestController {
private final Logger log = LoggerFactory.getLogger(getClass());
@RequestMapping("/log-test")
public String logTest(){
String name = "spring";
System.out.println("* log 테스트 **********");
log.trace("trace log={}",name);
log.debug("debug log={}",name);
log.warn("warn log={}",name);
log.info("info log={}",name);
log.error("error log={}",name);
return "OK";
}
}
💡패키지와 그 하위 로그 레벨 설정이 가능하다.
application.properties 또는 application.yml에서 설정 할수 있다.
LEVEL : TRACE > DEBUG > INFO > WARN > ERROR
기본은 INFO 부터 출력된다. 모든 로그를 다 보고 싶을때 trace를 사용한다.
EX) 보통 개발 서버는 debug 출력, 운영 서버는 info 출력하게 설정한다.
📑 application.properties (기본 로그 출력 레벨)
logging.level.root=info
📑 application.properties (패키지 별 로그 출력 레벨 설정)
logging.level.hello.springmvc=trace
'BackEnd > Spring Boot' 카테고리의 다른 글
[ Spring ] 메시지 관리 및 국제화 적용방법 (0) | 2023.03.27 |
---|---|
[ Spring Boot ] Thymeleaf (0) | 2023.03.25 |
[ Spring Boot ] Server 연결 (2) - 실제로 많이 사용되는 구조와 네이버 Api 연결해보기 (1) | 2023.03.13 |
[ Spring Boot ] Server 연결 (1) Get/Post- UriComponentsBuilder · RestTemplate (0) | 2023.03.12 |
[ Spring Boot ] Exception 예외 처리 방법 (0) | 2023.03.10 |