Spring Boot 프로젝트에 사용하여서 Spring Boot 카테고리에 있지만 Spring 에서도 적용 가능한 유틸 클래스입니다.
애플리케이션의 디버깅, 정보 기록 등을 체계적으로 관리하기 위해 로깅 레벨을 정의하고, 각 레벨에 해당하는 로거를 제공하는 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);
}
}
로깅 레벨을 체계적으로 관리하여 애플리케이션의 디버깅
, 모니터링
, 문제 해결
등에 유용하게 사용될 수 있는 로깅 유틸 클래스를 정리해보았습니다.