13. SLF4J
SLF4J란 Simple Logging Facade for Java의 줄임 표현으로,
로깅 라이브러리들을 한 단계 더 추상화시킨 인터페이스
java.util.logging, Log4j, Logback 등 어떤 구현체든 추상화된 인터페이스 역할 을 해주기 때문에 간단하게 현재 프로그램에서 사용 중인 로깅 프레임워크(구현체)를 다른 구현체로 변경할 수 있음

2. Facade 패턴
SLF4J는 이름에서 보이는 것과 같이 디자인 패턴 중 Facade 패턴을 활용하여 설계된 라이브러리

2-1. SLF4J
Logger에 해당하는 인터페이스 제공
→ SLF4J는 실제 구현체가 아닌 로깅 시스템을 공통으로 쓸 수 있도록 구조화한 인터페이스이기 때문에 SLF4J만으로는 실제 로깅을 사용할 수 없음
3. SLF4J의 구현체
3-1. Logback
Log4j 개발자가 개발, Log4J의 단점을 개선, SLF4J와의 자연스러운 호환을 목표로 설계됨
→ Spring Boot의 기본 로깅 프레임워크 라이브러리로 사용됨
3-2. Log4j2
Log4j의 업그레이드 버전, Apache 재단에서 Logback을 넘는 기능을 제공하며 경쟁 구도가 형성됨
→ 비동기 로깅 기능이 추가됨
3-3. SLF4J 사용 시 발생할 수 있는 에러
'Failed to load class "org.slf4j.impl.StaticLoggerBinder"'→ 바인딩을 지정하지 않음
'No SLF4J providers were found'→ 바인딩 버전이 맞지 않음
'Classpath contains multiple SLF4J bindings'→ 바인딩이 두개 이상 지정됨
Last updated on