[Java] SLF4J Logger(Simple Logging Facade for Java)

2025. 4. 4. 14:10·Java
728x90
반응형

1. SLF4J Logger란?

SLF4J(Simple Logging Facade for Java)는 로그 시스템을 추상화한 인터페이스입니다.실제 로그를 출력하는 구현체(Logback, Log4j 등)를 교체하더라도, 코드를 수정하지 않고 사용할 수 있도록 도와주는 로깅의 통일된 표준 인터페이스입니다.

 

2. IntelliJ에서 SLF4J + Logback 설정 방법
Java 프로젝트에 SLF4J를 적용하기 위해 일반적으로 Logback이라는 구현체를 함께 사용합니다.

 

1) Maven 프로젝트일 경우
pom.xml에 다음 의존성을 추가합니다.

<dependencies>
    <!-- SLF4J API -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.36</version>
    </dependency>

    <!-- Logback: SLF4J 구현체 -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.11</version>
    </dependency>
</dependencies>

 

2) Gradle 프로젝트일 경우
build.gradle 파일에 다음을 추가합니다.

dependencies {
    implementation 'org.slf4j:slf4j-api:1.7.36'
    implementation 'ch.qos.logback:logback-classic:1.2.11'
}

 

3. SLF4J Logger 사용 방법

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyService {
    private static final Logger logger = LoggerFactory.getLogger(MyService.class);

    public void doSomething() {
        logger.info("서비스 로직 시작");
        logger.warn("경고: 잘못된 값 감지 - ID: {}", 123);
        logger.error("에러 발생", new RuntimeException("예외 발생"));
    }
}

 

logger.warn("경고: 잘못된 값 감지 - ID: {}", 123);
이 구문에서 {} 자리에 123이 들어가며, SLF4J의 대표적인 기능입니다. 문자열 연결보다 효율적입니다.

 

4. 🧱 로그 레벨 종류

로그 레벨 설명
trace 가장 상세한 디버깅 로그 (보통 거의 사용하지 않습니다)
debug 개발 중 디버깅용 로그
info 일반적인 정보 로그
warn 주의해야 할 상황을 알릴 때
error 예외나 심각한 오류가 발생했을 때

 

5. 로그 설정 파일: logback.xml

src/main/resources 폴더 아래에 logback.xml 파일을 추가합니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

 

이 설정은 콘솔에 다음과 같은 형식으로 로그를 출력합니다:

2025-04-04 14:33:27 [main] INFO  com.example.MyService - 서비스 로직 시작

 

6. 로그를 사용하는 이유

- System.out.println()보다 훨씬 유용하고 성능도 뛰어납니다.
- 로그 수준을 조절하여 개발/운영 환경에 맞는 로그를 출력할 수 있습니다.
- 파일 저장, 로그 분리, 시간별/레벨별 로그 관리 등 다양한 기능을 활용할 수 있습니다.

 

728x90
반응형

'Java' 카테고리의 다른 글

[Java-Enum] 자바 Enum 매핑: 이해와 활용법  (1) 2024.12.24
[Java] 2. Java 핵심 라이브러리  (0) 2023.06.27
[Java] 1. What is Java?  (0) 2023.06.27
java.lang.ClassNotFoundException 오류  (0) 2023.03.09
Eclipse - Tomcat 정보: 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다:  (0) 2023.03.07
'Java' 카테고리의 다른 글
  • [Java-Enum] 자바 Enum 매핑: 이해와 활용법
  • [Java] 2. Java 핵심 라이브러리
  • [Java] 1. What is Java?
  • java.lang.ClassNotFoundException 오류
JongTachi
JongTachi
    반응형
  • JongTachi
    JongTachi의 개발 블로그
    JongTachi
  • 전체
    오늘
    어제
    • 분류 전체보기 (162)
      • Network (10)
      • Server (19)
        • Web (12)
        • WAS (6)
      • Java (8)
        • JVM (1)
        • Java Syntax (16)
        • IDE (5)
        • Lombok (2)
        • Util (1)
      • FrameWork (8)
        • Spring&SpringBoot (4)
        • MyBatis (4)
      • JSP (3)
      • JavaScript (12)
        • jQuery (3)
        • JSON (3)
      • APM (1)
      • Android (5)
      • VCS(Version Control System) (5)
        • Git (4)
        • SVN (1)
      • IT_Tools (15)
        • Jenkins (2)
        • MobaXterm (2)
        • Jeus (1)
        • DBeaver (3)
      • Certificate (1)
      • Linux (3)
      • DB (14)
        • MariaDB (0)
        • Oracle (8)
        • Redis (2)
      • IT Information (19)
      • Text Editor (2)
        • NotePad (2)
      • 비밀의방 (0)
      • 헬파티 여행 (1)
      • 경제 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    톰캣
    db
    git
    DBeaver
    디비버
    Server
    Linux
    자바스크립트
    JSON
    Eclipse
    인텔리제이
    보안
    WAS
    SQL
    마이바티스
    Redis
    상태코드
    오라클
    JQuery
    자바
    java
    HTTP
    IntelliJ
    oracle
    Javascript
    mybatis
    svn
    Web
    이클립스
    Tomcat
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JongTachi
[Java] SLF4J Logger(Simple Logging Facade for Java)
상단으로

티스토리툴바