로깅 프레임워크 Logback 적용하기

경성구·2022년 4월 8일
0

Spring

목록 보기
7/19

    Logback 이란?

  • Logback이란 Log4J를 기반으로 개발된 로깅(Logging)라이브러리
  • log4j에 비해 약 10배 정도 빠른 퍼포먼스,메모리 효울성 증대

  • 출시순서: log4j -> logback -> log4j2

    Logback 특징


    -로그에 특정 레벨을 설정할 수 있음(Track->Debug->Info->Warn->Error)
    -실운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그을 확인할 수 있음
    -출력 방식에 대해 설정할 수 있음
    -설정 파일을 일정 시간마다 스캔하여 어플리케이션 중단 없이 설정 변경 가능
    -별도의 프로그램 없이 자체적으로 로그 압축을 지원
    -로그 보관 기간 설정 가능

  • Logback 설정


    일반적으로 Classpath에 있는 logback 설정 파일을 참조하게 됨
    -Java Legacy,Spring의 경우에는 logback.xml 파일을 참조
    -Spring Boot의 경우에는 logback-spring.xml 파일을 참조

  • appender


    Log의 형태 및 어디에 출력할지 설정하기 위한 영역
  • 대표적인 Appender 형식은 아래와 같음
    .ConsoleAppender : 콘솔에 로그를 출력
    .FileAppender : 파일에 로그를 저장
    .RollingFileAppender : 여러 개의 파일을 순회하며 로그를 저장 (실무에서 가장 많이 사용)
    .SMTPAppender : 로그를 메일로 보냄
    .DBAppender : 데이터베이스에 로그를 저장
  • encoder


    Appender 내에 포함되는 항목이며, Pattern을 사용하여 원하는 형식으로 로그를 표현할 수 있음
    root설정한 Appender를 참조하여 로그의 레벨을 설정할 수 있음
    root는 전역 설정이며, 지역 설정을 하기 위해서는 logger를 사용

  • 로그 레벨TRACE -> DEBUG -> INFO -> WARN -> ERROR


    1)ERROR: 로직 수행 중에 오류가 발생한 경우, 시스템적으로 심각한 문제가 발생하여 작동이 불가한 경우
    2)WARN: 시스템 에러의 원인이 될 수 있는 경고 레벨,처리 가능한 사항
    3)INFO: 상태변경과 같은 정보성 메시지
    4)DEBUG: 어플리케이션의 디버깅을 위한 메시지 레벨
    5)TRACE: DEBUG 레벨보다 더 디테일한 메시지를 표현하기 위한 레벨
    *예를 들어, 로그 레벨을 'INFO'라고 설정했을 경우 'TRACE','DEBUG' 레벨은 출력되지 않음

  • Pattern


    %Logger{length} : Logger Name
    % -5level : 로그 레벨, -5는 출력의 고정폭 값
    %msg : 로그 메세지 영역(==%message)
    %{PID:-} : 프로세스 id
    %d : 로그 기록 시간
    %p : 로깅 레벨
    %F : 로깅이 발생한 프로그램 파일명
    %M : 로깅이 발생한 메소드의 이름
    %I : 로깅이 발생한 호출지의 정보
    %L : 로깅이 발생한 호출지의 라인 수
    %thread : 현재 Thread명
    %t : 로깅이 발생한 Thread명
    %c : 로깅이 발생한 카테고리
    %C : 로깅이 발생한 클래스 명
    %m : 로그 메시지
    %n : 줄바꿈
    %% : %출력
    %r : 어플리케이션 실행 후 로깅이 발생한 시점까지의 시간
    [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %logger %msg%n
참고 < https://thinkground.studio/>
profile
코딩배우기!

0개의 댓글

관련 채용 정보