SLF4J(Simple Logging Facade for Java)는 Java 애플리케이션의 로깅을 추상화하여 다양한 로깅 시스템에 대한 통합을 제공하는 Java 라이브러리입니다. 이 라이브러리를 사용하면 애플리케이션의 로깅 코드를 변경하지 않고도 로깅 시스템을 유연하게 전환할 수 있습니다.
SLF4J 의존성 추가하기
SLF4J를 사용하기 위해 먼저 해당 라이브러리의 의존성을 프로젝트에 추가해야 합니다. Maven을 사용하는 경우 pom.xml
파일에 다음과 같은 의존성을 추가합니다.
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.32</version>
</dependency>
</dependencies>
Gradle을 사용하는 경우 build.gradle
파일에 다음과 같은 의존성을 추가합니다.
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.32'
implementation 'org.slf4j:slf4j-simple:1.7.32'
}
로거 설정하기
SLF4J의 가장 간단한 구현체인 slf4j-simple
을 사용하여 로깅을 설정할 수 있습니다. slf4j-simple
은 간단하고 직관적인 로깅을 제공하는데, 개발 및 테스트 목적으로 사용하기에 적합합니다.
먼저, src/main/resources
디렉토리에 simplelogger.properties
파일을 생성하고 다음 내용을 추가합니다.
# 로그 레벨 설정: trace, debug, info, warn, error
org.slf4j.simpleLogger.defaultLogLevel=info
# 로그 포맷 설정: default 또는 brief
org.slf4j.simpleLogger.showThreadName=true
org.slf4j.simpleLogger.showDateTime=true
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS
# 로그 출력 장치 설정: system.out 또는 file
org.slf4j.simpleLogger.logFile=System.out
위의 설정은 로그 레벨을 info
로, 로그 포맷을 날짜와 시간이 포함된 형식으로, 로그를 System.out
에 출력하도록 지정합니다.
로깅 코드 작성하기
이제 SLF4J를 사용하여 로깅 코드를 작성할 수 있습니다. 예를 들어, 다음과 같이 로그 메시지를 출력하는 코드를 작성해봅시다.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyApplication {
private static final Logger logger = LoggerFactory.getLogger(MyApplication.class);
public static void main(String[] args) {
logger.info("안녕하세요, SLF4J 로깅 예제입니다.");
logger.debug("디버그 메시지입니다.");
logger.warn("경고 메시지입니다.");
logger.error("에러 메시지입니다.");
}
}
위의 코드에서는 LoggerFactory.getLogger()
메서드를 사용하여 로거를 생성하고, 생성한 로거를 통해 다양한 로그 메시지를 출력하고 있습니다.
로그 확인하기
애플리케이션을 실행한 후 로그를 확인해보면, 지정한 로그 레벨에 따라 출력되는 로그 메시지를 확인할 수 있습니다. 예를 들어, 위의 예제에서는 info
레벨로 설정했으므로 info
, warn
, error
레벨의 로그 메시지만 출력될 것입니다.
SLF4J를 사용하면 다른 로깅 시스템으로의 전환도 간단하게 할 수 있습니다. SLF4J에는 Logback, Log4j, java.util.logging과 같은 다양한 로깅 시스템과의 통합 라이브러리도 제공됩니다.
더 자세한 내용은 SLF4J 공식 문서를 참고하시기 바랍니다.