프로그램 개발 시 로그 레벨을 생각하지 않고 DEBUG만으로 로그를 출력하는 경우가 많다.
로그 출력 시 올바른 사용법으로 출력하는 것이 좋다.
먼저 Log4j 각 단계에 대해 알아보자.
log4j의 최근 버전에 의하면 높은 등급에서 낮은 등급으로의 6개의 로그 레벨을 가지고 있다.
로그레벨 순서
TRACE > DEBUG > INFO > WARN > ERROR > FATAL
TRACE | DEBUG보다 더 세분화 된 정보를 지정 |
DEBUG | 프로그램 디버깅하기 위한 정보를 지정 |
INFO | 상태변경과 같은 정보성 메세지 지정 |
WARN | 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메세지 지정 |
ERROR | 요청을 처리 도중 문제가 발생한 경우 |
FATAL | 프로그램을 중단 할 수 있는 심각한 오류, 작동이 불가능할 경우 |
프로젝트 진행 시 대체로 개발가이드에는 DEBUG, INFO, WARN, ERROR 4가지를 구분하여 출력하도록 되어 있다.
1. DEBUG
로컬 및 개발서버 환경 출력하며, 개발 및 디버깅 시 출력한다.
String param1 = "param1";
String param2 = "param2";
log.debug("value1 : {}, value2 : {}", param1, parma2); // {} 순서대로 매핑됨
실행 결과
value1 : param1, value2 : param2 |
2. INFO
운영서버 환경에서 출력하며, 프로세스 정상 동작 여부 출력한다.(개인정보 출력 금지)
예제는 생략한다.
3. WARN
정상 프로세스가 아닌 경우 출력한다.
HashMap<String, Object> session = (HashMap<String, Object>)session.getAttribute("name");
if(session == null){
log.warn("Not Exist Session: name");
throw new Exception();
}
강제로 Exception 발생 시 주로 사용한다.
4. ERROR
try {
int result = service.insertMember(vo);
}catch(Exception e) {
log.error(e.getMessage(), e);
}
에러 발생 시 출력한다.
로그 출력 시 로그 레벨에 맞게 구분하여 출력하는 개발 습관을 들였으면 한다.
'Java' 카테고리의 다른 글
[Java] window에서 자바 아카이브(JAR)로 압축하기 (0) | 2021.11.24 |
---|---|
[JAVA] 가변매개변수(매개변수 동적 사용/오버로딩 X) (0) | 2021.10.26 |
[JAVA] URL링크 공유 웹사이트 크롤링(Jsoup 라이브러리) (0) | 2021.10.26 |
[JAVA] 태그를 제거하는 정규표현식 (0) | 2021.08.06 |
[Java] Emoji 문자 제거 (2) | 2021.07.19 |