로깅이란
- 로깅(logging)은 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동을 말한다.
로그 레벨
- 레벨에 따라서 로그 메세지가 달라진다.
- TRACE < DEBUG < INFO < WARN < ERROR
- ERROR: 요청을 처리하는 중 오류가 발생한 경우를 표시한다.
- WARN: 처리 가능한 문제, 시스템 에러의 원인이 될 수 있는 경고성 메시지를 표시한다.
- INFO: 상태 변경과 같은 정보성 로그를 표시한다.
- DEBUG: 프로그램을 디버깅하기 위한 정보를 표시한다.
- TRACE: 추적 레벨은 DEBUG보다 좀 더 상세한 정보를 표시한다.
* xml 파일에 원하는 레벨만 설정 가능
주요 Logging Framework
- java.util.logging
- Apache Commons logging
- Log4j
- Logback
* 스프링 부트에서는 기본적으로 SLF4J, Logback을 채택하고 있음
SLF4J(Simple Logging Facade for Java)
- java.util.logging, logback 및 log4j와 같은 다양한 로깅 프레임 워크에 대한 추상화(인터페이스) 역할을 하는 라이브러리.
- SLF4J는 추상 로깅 프레임워크이기 때문에 단독으로는 사용하지 않는다.
- 즉, 최종 사용자가 배포시 원하는 로깅 프레임워크를 결정하고 사용해도 SLF4J가 인터페이스화 되어있기에, SLF4J를 의존하는 클라이언트 코드에서는 실제 구현을 몰라도 된다(의존관계 역전 법칙).
* Facade Pattern
- 파사드 패턴은 일련의 복잡한 내부 동작들을 하나로 묶어주는 인터페이스를 만드는 패턴이다.
- 다양한 시스템, 라이브러리, 내부 모듈 등을 구성을 통해 통합해서 기능을 제공하는 것이다.
- 파사드 클래스는 다양한 객체의 협력을 내부에 감싸서 캡슐화해서 제공하기 때문에 사용하는 객체는 그 내부에서 일어나는 일들을 알지 못한다.
SLF4J 동작과정
https://livenow14.tistory.com/63
어노테이션 미사용 코드
@Slf4j
- import lombok.extern.slf4j.Slf4j;
어노테이션 사용 코드
사진 출처 및 참고
https://inseok9068.github.io/java/java-lombok-slf4j/
https://livenow14.tistory.com/63
https://gmlwjd9405.github.io/2019/01/04/logging-with-slf4j.html
'SpringBoot' 카테고리의 다른 글
웹 개발 발전 과정 Servlet, JSP, MVC, FrameWork (0) | 2023.01.18 |
---|---|
@NotNull, @NotEmpty, @NotBlank 문자열 검증 (0) | 2022.08.30 |
Java Mockito when(), BDDMokito given() (0) | 2022.08.08 |
lombok 라이브러리 @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor (0) | 2022.08.04 |
lombok 라이브러리 @Getter, @Setter, @ToString, @Builder (0) | 2022.08.03 |
댓글