로깅 라이브러리
- 로그 라이브러리는 Logback, Log4J, Log4J2 등이 존재
- 스프링 부트는 이러한 로그 라이브러리를 통합한 인터페이스(추상화)를 제공하는데, 그것이 바로 SLF4J 라이브러리
- SLF4J = 인터페이스
- Logback, Log4J, Log4J2 = 구현체
SLF4J (Simple Logging Facade for Java)
다양한 로깅 프레임 워크에 대한 추상화(인터페이스) 역할을 하는 라이브러리
SLF4J는 추상 로깅 프레임워크이기 때문에 단독으로는 사용하지 않음
로그 사용시 장점
- 스레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있음
- 로그 레벨에 따라 개발 서버에서 모든 로그를 출력하고, 운영 서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절할 수 있음
- 시스템 콘솔에만 출력하는 것이 아니라, 파일이나 네트워크 등, 로그를 별도의 위치에 기록할 수 있음
- 특히 파일로 남길 때는 일별, 특정 용량에 따라 로그를 분할하는 것 또한 가능
- 성능도 일반 시스템 콘솔보다 좋음 (내부 버퍼링, 멀티 쓰레드 등등)
SLF4J 동작과정
SLF4J은 간략히 아래와 같은 과정을 거쳐요.
- 개발할 때, SLF4J API를 사용하여 로깅 코드를 작성
- 배포할 때, 바인딩된 Logging Framework가 실제 로깅 코드를 수행
