로그란 ?
로그는 소프트웨어에서 발생하는 이벤트와 정보를 기록하는 것을 말한다. 이벤트와 정보는 일반적으로 애플리케이션의 상태, 실행 과정에서 발생하는 문제, 성능 지표 등 다양한 정보가 포함될 수 있다.
로그는 디버깅, 모니터링, 오류 분석 등의 목적으로 사용된다. 로그를 기록하면 문제가 발생한 원인을 파악하고, 해결하기 위한 정보를 얻을 수 있다. 로그를 통해 애플리케이션의 상태와 작동 과정을 이해할 수 있으며, 시스템 성능을 최적화하기 위한 정보를 수집할 수도 있다.
로그는 다양한 형태로 출력될 수 있다. 일반적으로는 파일에 저장되지만, 콘솔에 출력하거나, 데이터베이스에 저장할 수도 있다. 로그는 일반적으로 다양한 로그 레벨에 따라서 분류된다.
- log4j
Apache Software Foundation에서 개발된 Java 언어를 위한 로깅 프레임워크이다. log4j는 자바 기반의 어플리케이션에서 로그를 기록하기 위한 기능을 제공한다. 다양한 로그 레벨, 로그 출력 형식 등을 지원한다. 이 프레임워크는 다양한 앱에서 사용되고 있다.
- logback
logback은 log4j의 개발자 Ceki Gülcü가 만든 Java 언어를 위한 로깅 프레임워크이다. logback은 log4j와 마찬가지로 다양한 로그 레벨, 로그 출력 형식 등을 지원한다. 또한, logback은 스레드로부터 안전한 구조로 만들어져 있다. 이 프레임워크는 스프링 프레임워크 등 다양한 앱에서 사용되고 있다.
- slf4j
Simple Logging Facade for Java의 약자로, log4j와 logback등의 다양한 로깅 프레임워크를 추상화한 인터페이스이다. slf4j는 애플리케이션의 코드에서 로깅 프레임워크를 직접 호출하는 대신, slf4j API를 사용하여 로깅 코드를 작성하게 된다. 이를 통해 코드가 다양한 로깅 프레임워크를 유연하게 대처할 수 있다.
※ 따라서, log4j와 logback은 로그를 처리하는 실제 프레임워크이며, slf4j는 다양한 로그 프레임워크를 추상화한 인터페이스이다.
이들의 차이점은 다음과 같다.