로깅
업무 프로그램에서 어떤 컨텐츠를 로그에 기록하는 방법을 설명한다.
1. 로그 레벨과 로깅 내용
로그 레벨 | 로깅 내용 | 개발 | 테스트 | 운영 |
---|---|---|---|---|
TRACE |
추적 레벨이 DEBUG보다 좀 더 상세한 정보를 나타낸다. |
O |
X |
X |
DEBUG |
개발 환경에서 디버깅 목적으로 출력한다. |
O |
X |
X |
INFO |
테스트, 검증 목적의 메시지만 출력한다. |
O |
O |
X |
WARN |
운영 환경에서 운영자에 의해 확인이 필요한 내용을 출력한다. |
O |
O |
O |
ERROR |
오류(장애, 이상)가 발생한 경우 그 내용을 출력한다. |
O |
O |
O |
-
TRACE > DEBUG > INFO > WARN > ERROR 순으로 로그 레벨이 낮아지면 출력 내용이 적어진다.
-
낮은 레벨로 남긴 로그는 높은 레벨에서도 출력된다. (서버 설정이 DEBUG일 때 INFO로 코딩된 로그도 출력된다.)
2. 로깅 방법
org.slf4j.Logger를 사용하며, 아래와 같이 logger 객체를 멤버 변수로 선언한다.
private final Logger logger = LoggerFactory.getLogger(this.getClass());
trace, debug, info, warn, error 메소드
// 고정 문자열 로깅
logger.debug("로깅 내용");
// IO 객체 로깅
logger.debug("로깅 내용 : {}", input);
// N개의 항목 로깅
logger.debug("로깅 내용1 : {}, 내용2 : {}, 내용3 : {}", input.getEmpNo(), input.getEmpNm(), input.getHireDt());
Exception 객체 로깅
logger.error("접수 처리중 에러", e);
3. 로그 레벨 변경
로그 레벨은 BXM Web Admin에 접속하여 [온라인 관리 - 거래 파라미터 관리] 메뉴에서 변경할 수 있다.
시스템 로그 레벨 : 현재 설정된 시스템 로그 레벨로, 시스템(프레임워크) 영역에서 출력하는 로그의 레벨을 정의한다. DEFAULT는 시스템 기본 설정을 따른다는 의미이다.
업무 로그 레벨 : 현재 설정된 업무 로그 레벨로, 업무 영역에서 출력하는 로그의 레벨을 정의한다. DEFAULT는 시스템 기본 설정을 따른다는 의미이다.
DB 로그 레벨 : 현재 설정된 DB 로그 레벨로, DBIO에서 출력하는 로그의 레벨을 정의한다. DEFAULT는 시스템 기본 설정을 따른다는 의미이다.