[java] Log4j의 MDC 사용 예제
Log4j는 로깅 라이브러리로서, 로그 메시지의 품질과 가독성을 높이기 위해 다양한 기능을 제공합니다. 그 중 MDC(Mapped Diagnostic Context)는 로그 메시지에 관련된 추가 정보를 쉽게 전달할 수 있는 기능입니다. MDC를 사용하면 로그 메시지에 추적 ID, 사용자 정보 등과 같은 추가 정보를 함께 기록할 수 있습니다.
MDC 설정하기
MDC를 사용하기 위해서는 다음과 같이 MDC 값을 설정해야 합니다.
import org.apache.log4j.MDC;
public class MyLogger {
// 로그 메시지에 기록할 MDC 값의 키를 상수로 정의
private static final String TRACKING_ID_KEY = "trackingId";
public static void setTrackingId(String trackingId) {
// MDC에 값을 설정
MDC.put(TRACKING_ID_KEY, trackingId);
}
public static void clearTrackingId() {
// MDC에서 값을 제거
MDC.remove(TRACKING_ID_KEY);
}
}
위의 코드에서 setTrackingId
메서드는 MDC에 트래킹 ID 값을 설정하는 역할을 하고, clearTrackingId
메서드는 MDC에서 트래킹 ID 값을 제거하는 역할을 합니다. TRACKING_ID_KEY
는 로그 메시지에 기록될 MDC 값의 키를 상수로 정의한 것입니다.
MDC 사용하기
MDC를 설정한 후에는 로그를 기록할 때 해당 MDC 값을 참조하여 메시지에 적절한 추가 정보를 포함시킬 수 있습니다.
import org.apache.log4j.Logger;
public class MyApp {
private static final Logger LOGGER = Logger.getLogger(MyApp.class);
public void doSomething() {
// MDC 값 설정
MyLogger.setTrackingId("abcd1234");
// 로그 기록
LOGGER.info("Something happened");
// MDC 값 제거
MyLogger.clearTrackingId();
}
}
위의 코드에서 doSomething
메서드에서는 MDC 값을 설정한 후 로그를 기록하고, 메서드를 마치기 전에 MDC 값을 제거합니다. 로그 메시지를 기록할 때 MDC 값을 참조하여, 로그에 트래킹 ID가 추가됩니다.
결론
Log4j의 MDC를 사용하면 로그 메시지에 추가 정보를 포함시킬 수 있어 디버깅이나 로그 분석을 용이하게 할 수 있습니다. MDC를 사용하여 로그 메시지에 필요한 정보를 쉽게 추가할 수 있으며, 이를 통해 시스템의 문제점을 빠르게 파악하고 해결할 수 있습니다.
참고 문서: