[Java] Exception 한줄로 처리하기

Allow·2024년 5월 7일
0

이슈

업무 환경에서 DataDog을 사용하고 있는데, DataDog에서 오류로그를 line별로 요금을 받고 있어 라인 수가 많은 Exception 로그를 줄일 수 있는지에 대한 인프라 조직 요청이 있었다.

해결방법

오류 로그가 긴 Exception을 한줄로 처리했다.
모든 Exception을 적용하지는 않고 자주 발생하고, 유독 긴 오류에 대해서만 작업을 진행했다.

Exception 오류 로그를 한줄로 만들어주는 Util.java

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ExceptionUtils {

	public static String toOneLineExceptionDetailLog(Throwable throwable, String lineSeparator) {
		var stackTraces = throwable.getStackTrace();
		StringBuilder builder = new StringBuilder();
		builder.append(throwable.toString());
		for (StackTraceElement element : stackTraces) {
			builder.append(lineSeparator).append("\tat ").append(element);
		}
		return builder.toString();
	}

	public static String toOneLineExceptionDetailLog(Throwable throwable) {
		return toOneLineExceptionDetailLog(throwable, "<br>");
	}
}

사용 예시

try {
	occurException(testValue);
} catch (NumberFormatException e) {
	log.debug("[Test: one line stack trace = {}", ExceptionUtils.toOneLineExceptionDetailLog(e));
}
profile
반갑습니다!

0개의 댓글