본문 바로가기
Java관련/Java

로깅 라이브러리 Logging Library

by devstep 2022. 4. 11.

자바 로깅

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 문법

  • 이번주 프로젝트 끝나면 정리하자.

참고 자료

'Java관련 > Java' 카테고리의 다른 글

Objects.requireNonNull() - java.util.Objects  (0) 2022.04.16
static  (0) 2022.04.13
정적팩토리 메서드  (0) 2022.04.09
JAVA11 설치하기  (0) 2022.03.12
두 개의 리스트List값 비교 방법  (0) 2022.02.22

댓글