Spring Logging 개념정리

Jieun·2023년 5월 11일
0

📝 Log 개념정리, @Scheduled 활용해서 DB와 서버 이미지 맞춰주기
#230511

로그의 장점/ 단점

장점

  • 프로그램의 문제파악에 용이
  • 빠르고 효율적인 디버깅 가능
  • 수행내역 파악이 쉬움
  • 로그 이력을 파일, DB 등으로 남길 수 있음

단점

  • 로그에 대한 디바이스(파일) 입출력으로 인해 런타임 오버헤드 발생
  • 로깅을 위한 추가 코드로 인해 전체 코드 사이즈 증가
  • 심하게 생성되는 로그는 혼란을 야기하거나 어플리케이션 성능에 영향을 미침
  • 개발 중간에 로깅 코드를 추가하기 어려움

Logging framework ( log4j / logback / slf4j )

log4j : 스프링에 기본적으로 설치되는 라이브러리
많은양의 로그를 출력하는 경우 성능 저하가 심해

logback
: log4j 보다 10배 빠름

slf4j
: log4j logback 사이에 변환해주는 라이브러리


log4j.xml (로그 관련 설정 파일) 구조

빨간줄은 실제 로그가 찍혀있는 위치를 나타내는 것.
아래 그림 속 위치에 파일을 누르면 해당 날에 찍은 모든 로그가 기록되어 있다.

  • Appender : 전달된 로그를 어디에 출력할지 결정(콘솔출력, 파일기록, DB저장)

  • Logger/root : 출력할 메세지를 Appender에 전달한다. 로그 주체

    • name 속성 : 로그 주체, 패키지 작성
    • additivity 속성 : 로그가 상위로 전달할 지 여부. 기본값 true
    • appender-ref 자식태그 : ref 속성값으로 appeder태그 name 값을 지정.
    • level 자식태그 : 로그레벨을 설정함. 설정된 값 이상의 priority일 경우, 로깅출력

DEBUG < INFO < WARN < ERROR < FATAL


Appender 의 종류

  • ConsoleAppender : 로그를 콘솔에 출력하기 위한 Appender

  • JDBCAppender : 로그를 RDB에 출력하기 위한 Appender

  • FileAppender : 로그를 파일에 출력하기 위한 Appender
    단, 지정한 파일에 로그가 계속 남기때문에 크기가 지나치게 커질 수 있고
    지속적인 로그관리 불가능해짐

  • RollingFileAppender
    FileAppender를 보완한 개념
    일정한 조건 후에 기존파일을 백업파일로 바꾸고 다시 처음부터 로깅 시작
    대표적인 예로 DailyRollingFileAppender가 있음

profile
👩‍💼👩‍💼➡️➡️➡️👩‍💻👩‍💻 생산자의 삶을 살기 위해 개발공부중

0개의 댓글