로그를 우아하게 남기자
placeholder 사용
placeholder를 사용하면 logger 레벨에 의해 자동으로 문자열 연산을 안 함
효율적이면서 또 공백 같은 눈에 띄기 힘든 오류들도 잘 잡아낼 수 있음.
logger.info("Old weight is {}. new weight is {}.", oldWeight, newWeight);
{}는 2개지만 파라미터로 4개(accountId, channelId, name, age)와 예외(e)를 주면, 남는 파라미터(name, age)는 무시된다. 그리고 파라미터가 모자라는 경우는 메시지가 포메팅되지 않고 {} 그대로 로깅된다.
error(String msg, Throwable t) 같이 throwable을 던질 수 있는 메소드가 하나 있다. 이 메소드를 쓰면 예외의 stacktrace를 함께 남겨줘서 디버깅할 때 유용하다. error(String format, Object... arguments) 같은 메소드를 쓸 때 마지막에 throwable을 넘겨주자.
문자열로 stackTrace 를 다 뽑아내는 방법
catch (Exception e2) {
log.info("clientSocket connected refused!!!");
log.info("Exception" + Common.getPrintStackTrace(e2));
//e2.printStackTrace();
}
public static String getPrintStackTrace(Exception e) {
StringWriter errors = new StringWriter();
e.printStackTrace(new PrintWriter(errors));
return errors.toString();
}
참고
https://www.youtube.com/watch?v=HxzlJWMcHng
https://www.tutorialspoint.com/slf4j/slf4j_parameterized_logging.htm
https://blog.leocat.kr/notes/2018/12/30/logger-last-throwable-param-on-logging-formatted-message
Author And Source
이 문제에 관하여(로그를 우아하게 남기자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@stella6767/로그를-우아하게-남기자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)