개발이야기/Java

[Java] 로그(log) 파일 만들기 (Logger 클래스 사용)

후린개발자 2024. 5. 23.
반응형

아래 예제 코드는 Logger 클래스를 사용하여 지정된 경로에 로그 파일을 만들고 Logger 설정을 통해 로그 레벨에 따라 메시지를 기록하는 코드입니다.
Logger는 java.util.logging 패키지에서 제공하는 클래스이며, 로그 메시지를 기록하고 관리하는 데 사용됩니다. Logger는 다양한 로그 레벨을 지원하여 애플리케이션의 상태나 오류 등을 기록할 수 있게 해줍니다.

 

1. Logger 생성

private static final Logger logger = Logger.getLogger(클래스명.getName());

 

-Logger 객체는 Logger.getLogger 메서드를 사용하여 생성합니다. 이 메서드는 주어진 이름을 가지는 로거를 반환합니다.

 

2. 로그 레벨 (Log Levels)

-SEVERE: 매우 심각한 오류를 나타내는 메시지

-WARNING: 잠재적인 문제를 나타내는 메시지

-INFO: 일반적인 정보를 나타내는 메시지

-CONFIG: 애플리케이션 설정과 관련된 메시지

-FINE: 세부적인 디버그 메시지

-FINER: 매우 세부적인 디버그 메시지

-FINEST: 가장 세부적인 디버그 메시지

-ALL: 모든 로그 메시지를 기록

-OFF: 로그 메시지를 기록하지 않음

 

3. Logger 설정

logger.setLevel(Level.INFO);

 

-Logger의 로그 레벨을 설정하여 특정 레벨 이상의 로그 메시지만 기록할 수 있습니다.

-Logger는 상위 로거의 설정을 상속받습니다. 이를 통해 애플리케이션의 로깅 설정을 계층 구조로 관리할 수 있습니다.

 

4. 예제코드

import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

public class TEST {
    private static final Logger logger = Logger.getLogger(TEST.class.getName());
    
    public static void main(String[] args) throws Exception {
        setupLogger();

        // 다양한 레벨의 로그 메시지 작성
        logger.severe("This is a SEVERE message");
        logger.warning("This is a WARNING message");
        logger.info("This is an INFO message");
        logger.fine("This is a FINE message");
        logger.finest("This is a FINEST message");
    }
    private static void setupLogger() {
        try {
            // 로그 파일 경로 설정
            String filePath = "D:\\logData\\application.log";

            // FileHandler를 생성하여 로그 파일 경로 설정
            FileHandler fileHandler = new FileHandler(filePath, true);

            // SimpleFormatter를 사용하여 로그 포맷 설정
            fileHandler.setFormatter(new SimpleFormatter());

            // Logger에 FileHandler 추가
            logger.addHandler(fileHandler);

            // 로거의 로그 레벨 설정
            logger.setLevel(Level.ALL);

        } catch (IOException e) {
            logger.severe("Failed to initialize logger handler.");
            e.printStackTrace();
        }
    }
}

 

1) Logger 인스턴스 생성

private static final Logger logger = Logger.getLogger(TEST.class.getName());

-Logger.getLogger 메서드를 사용하여 TEST 클래스에 대한 로거 인스턴스를 생성합니다. TEST 클래스와 연관된 로그 메시지를 관리합니다.


2) main 메서드

-setupLogger 메서드를 호출하여 로거를 설정합니다.

-로그 레벨(severe, warning, info, fine, finest)의 로그 메시지를 기록합니다.


3) setupLogger 메서드

-로그 파일의 경로를 D:\\logData\\application.log로 설정합니다.

-FileHandler를 생성하여 로그를 지정된 파일에 기록하도록 설정합니다. 두 번째 인자 true는 기존 파일에 로그를 추가하도록 설정합니다.

-SimpleFormatter를 사용하여 로그 메시지의 형식을 지정합니다.

-생성한 FileHandler를 로거에 추가합니다.

-로거의 로그 레벨을 Level.ALL로 설정하여 모든 로그 메시지를 기록하도록 합니다.

 


 

 

반응형

댓글

💲 추천 글