/////
Search
Duplicate
📇

SLF4J

Simple Logging Facade For Java
다양한 로깅 프레임워크에 대한 추상화(인터페이스) 역할
추상 로깅 프레임워크이기에 단독으로 사용 불가능
최종 사용자가 배포시 원하는 구현체를 선택
로깅 프레임
SLF4J를 의존하는 클라이언트 코드에서는 실제 구현을 몰라도 됨
개방 폐쇄 원칙 의존관계 역전원칙이 잘 지켜짐
개발할때 - SLF4J 로깅 코드를 작성
배포할 때는 바인딩된 로깅 프레임 워크가 실제 로깅 코드를 수행
Bridge - 다른 로깅 API로의 Logger 호출을 SLF4J API로 연결 이전의 레거시 로깅 프레임워크를 위한 라이브러리 여러개 사용가는 Binding 모듈에서 사용될 프레임워크와 달라야함 일종의 어댑터 역할을 함
주의점 여러개를 사용해도 사용해도 상관없지만 Bridge와 Binding 모듈에 같은 종류의 프레임워크 사용 X
SLF4J - 로깅에 대한 추상 레이어(인터페이스) 제공 하나의 API 모듈의 하나의 Binding 모듈
Binding - SLF4J API를 로깅 구현체 (Logging Framework) 와 연결하는 일종의 어댑터 역할, 하나의 API 모듈에 하나의 Binding 모듈
public class WonowApplication { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(WonowApplication.class); // 사용법 // 자동으로 Log Level을 Debug로 잡아줌 // 그래서 Trace는 출력 되지 않음 for(int i = 0; i < 5; i++) { logger.error("에러 {}", i) logger.warn("워닝 {}", i) logger.info("인포 {}", i) logger.debug("디버그임 {}", i) logger.trace("트레이스임 {}", i) // 출력안됨 logger.trace("트레이스임" + i) // 출력은 안되는데 + 연산은 들어가서 성능이 안좋아짐 그래서 위와 같이 사용하는 게 좋음 } } }
Java
복사
디버그 레벨 이상 말고 로그 레벨에 따라 따르게 설정하고 싶으면 xml에 작성
자세한 내용은 LogBack에 작성하겠음