[Spring Boot] BasicLogger Class 생성 - 디버깅, 정보 기록 관리

bi_sz·2024년 6월 3일
0

SpringBoot

목록 보기
1/2
post-thumbnail

Spring Boot 프로젝트에 사용하여서 Spring Boot 카테고리에 있지만 Spring 에서도 적용 가능한 유틸 클래스입니다.

⭐ BasicLogger

애플리케이션의 디버깅, 정보 기록 등을 체계적으로 관리하기 위해 로깅 레벨을 정의하고, 각 레벨에 해당하는 로거를 제공하는 BasicLogger 클래스를 생성해줍니다.

ignore

  • 기록이나 처리가 불필요한 경우 사용합니다.
  • 메시지와 예외를 로깅합니다.

debug(String message, Exception exception)

  • 디버그 정보를 기록하는 경우 사용합니다.
  • 메시지와 예외를 로깅합니다.

debug(String message)

  • 디버그 정보를 기록하는 경우 사용합니다.
  • 메시지만 로깅합니다.

info(String message)

  • 일반적인 정보를 기록하는 경우 사용합니다.
  • 메시지를 로깅합니다.
package com.liyo.cmm.util;

import java.util.logging.Level;
import java.util.logging.Logger;

public class BasicLogger {
    private static final Level IGNORE_INFO_LEVEL = Level.OFF;
	private static final Level DEBUG_INFO_LEVEL = Level.FINEST;
	private static final Level INFO_INFO_LEVEL = Level.INFO;
	
	private static final Logger ignoreLogger = Logger.getLogger("ignore");
	private static final Logger debugLogger = Logger.getLogger("debug");
	private static final Logger infoLogger = Logger.getLogger("info");
	
	/**
	 * 기록이나 처리가 불필요한 경우 사용.
	 * @param message
	 * @param exception
	 */
	public static void ignore(String message, Exception exception) {
		if (exception == null) {
			ignoreLogger.log(IGNORE_INFO_LEVEL, message);
		} else {
			ignoreLogger.log(IGNORE_INFO_LEVEL, message, exception);
		}
	}
	
	/**
	 * 기록이나 처리가 불필요한 경우 사용.
	 * @param message
	 * @param exception
	 */
	public static void ignore(String message) {
		ignore(message, null);
	}
	
	/**
	 * 디버그 정보를 기록하는 경우 사용.
	 * @param message
	 * @param exception
	 */
	public static void debug(String message, Exception exception) {
		if (exception == null) {
			debugLogger.log(DEBUG_INFO_LEVEL, message);
		} else {
			debugLogger.log(DEBUG_INFO_LEVEL, message, exception);
		}
	}
	
	/**
	 * 디버그 정보를 기록하는 경우 사용.
	 * @param message
	 * @param exception
	 */
	public static void debug(String message) {
		debug(message, null);
	}
	
	/**
	 * 일반적이 정보를 기록하는 경우 사용.
	 * @param message
	 * @param exception
	 */
	public static void info(String message) {
		infoLogger.log(INFO_INFO_LEVEL, message);
	}
}

로깅 레벨을 체계적으로 관리하여 애플리케이션의 디버깅, 모니터링, 문제 해결 등에 유용하게 사용될 수 있는 로깅 유틸 클래스를 정리해보았습니다.

profile
https://li-yo.tistory.com/ 티스토리 블로그 이전 하였습니다.

0개의 댓글