Spring | Log

brightbell·2023년 10월 11일

Spring

목록 보기
11/12
post-thumbnail

Log

로그

  • 애플리케이션이 동작하는 동안의 각종 이벤트를 기록으로 남기는 것
  • 개발 기간에는 로그 패키지를 이용하여 디버깅에 활용
  • 로그 출력을 특정 파일이나 DB 에 저장해 둘 수 있음

Java Logging Framework

  • 자바 애플리케이션을 개발할 때 사용할 수 있는 로그 처리 프레임워크
  • java.util.logging 패키지 , Log4j, Logback 등이 존재

Log4j

  • 자바 기반의 Logging 유틸리티
  • 가장 오래된 Java Logging Framework
  • 프로그램 개발 도중 디버깅을 위해 정해진 양식에 맞춰 화면이나 파일로 기록을 남길 수 있음

로그 레벨
무분별한 로그로 인해 중요한 로그를 찾는 것이 어려워지는 것을 막기 위해 어떤 내용까지를 로그로 남길 것인지
표준으로 정해 놓은 레벨
(INFO 레벨 적용 시 FATAL, ERROR, WARN, INFO 레벨의 로그가 남겨짐)

  • FATAL
    응용프로그램이
    중단될 가능성이 있는 매우 심각한 오류 이벤트를 지정

  • ERROR
    응용프로그램
    실행을 계속 허용할 수 있는 오류 이벤트를 지정

  • WARN
    잠재적으로
    유해한 상황을 지정

  • INFO
    대략적인
    수준에서 응용프로그램의 진행률을 강조하는 정보 메시지를 지정

  • DEBUG
    응용프로그램을
    디버깅하는데 가장 유용한 세부 정보 이벤트를 지정
    (개발 단계에서 주로 사용하는 레벨 운영 단계에서는 로그가 너무 많아 감당이 안 될 수 있음)

  • TRACE
    DEBUG보다 세분화된 정보 이벤트를 지정

Commons Logging

정식 명칭은 Jakarta Commons Logging(JCL)
아파치 재단에서 제공하는 공통 로깅 API 로 facede 역할을 수행함
(* facede : 퍼사드 , 어떤 소프트웨어의 간략한 인터페이스를 제공하는 디자인 패턴)
런타임 시점에 다른 Logging Framework 를 찾기 때문에 비효율적임

SLF4J

Simple Logging Facade for Java
Commons Logging 과 마찬가지로 공통 로깅 API 역할을 수행
Log4j, Logback 등과 같이 다른 Logging Framework 에 대한 인터페이스 역할을 수행
컴파일 시점에 다른 Logging Framework 를 바인딩하기 때문에 효율적임 기존의 Commons Logging 의 단점을 보완

Logback

  • Log4j 의 후속 버전 Java Logging Framework
  • Log4j 보다 10 배의 성능 개선이 이루어지고 메모리 점유도 줄어듬
  • 현재 가장 널리 사용되고 있음
  • SLF4J 의 구현체
  • 6 단계의 로그 레벨을 가짐
    (OFF > ERROR > WARN > INFO > DEBUG > TRACE)

0개의 댓글