자바 로깅
System.Logger의 구현체로 무엇을 사용할까?
현장에서 사용하고 있는 자바 로깅의 변화
- log4j -> logback -> log4j2
- 최근에는 다시 log4j2를 사용하고 있는 추세라고 한다.
읽어보기
Logger 이해하기
- Logger는 꽤 다양한 것을 묶어 사용하게 되어 있는 것 같았다.
- 자세하게 공부하지는 못했지만 위 2개 url 먼저 보는 것도 좋다.
SLF4J
- SLF4J는 로깅구현체가 아닌 , Logging 라이브러리에 대한 Facade 역할을 한다.
- 즉, 로깅 라이브러리를 변경하는 경우(log4j -> logback) 소스 코드에 대한 수정을 최소화하면서 의존 관계에 있는 라이브러리만 변경하는 것이 가능하도록 지원한다.
- 최범균의 객체지향과 디자인패턴 책에는 SLF4J를 어댑터패턴이 적용된 예라고 소개한다.
- SLF4J는 단일 로깅 API를 사용하면서 자바 loging, log4j, LogBack등의 로깅 프레임워크를 선택적으로 사용할 수 있도록 해준다고 한다.
LogBack
- 프로젝트에서 LogBack을 사용했었다.
- 일단은 LogBack을 그냥 사용하는 것으로.
로깅 패턴
%-5level : 로그 레벨, -5는 출력의 고정폭 값(5글자) (INFO, ERROR, DEBUG , 기타 등등이다.)
%d{날짜 형식 포맷} : 로그 기록시간 %d{yyyy-MM-dd HH:mm:ss} 을 사용하면 된다.
%thread : 현재 Thread 명
%F : 로깅을 발생시킨 파일 명
%M : 로깅을 발생시킨 메소드 명
%logger{length} : Logger name을 축약할 수 있다. length는 최대 자릿수이다 (0 = 무제한)
%line : 로깅이 발생된 라인 넘버
%msg : - 로그 메시지
%n : 줄바꿈(new line)
그외 로깅패턴은 공식문서 참고
Configuration 문법
참고 자료
댓글