TIL 69일_2차

Moon-Tree·2023년 4월 11일
0

◆ 로깅(Logging)

  • 로깅(Logging)은 로그를 생성하고 기록하는 과정을 말한다.
  • 로그(Log)는 시스템이나 애플리케이션의 실행 과정에서 발생하는 이벤트나 메시지를 기록한 파일이나 데이터를 말한다.
    - 주로 문제 발생 시 원인을 파악하거나 성능 최적화, 보안 감사 등의 목적으로 사용된다.

◆ Logging 도구 종류

  • System.out.println()
  • java.util.logging 패키지
  • 상용 라이브러리
    - Log4J - 과거부터 많이 사용하던 로깅 라이브러리. 2021년 치명적인 보안 이슈 발생(스프링 레거시)
    - Logback - 사용량이 점점 늘어나는 신규 로깅 라이브러리(스프링 부트)

◆ Logging 의 구성 원리

로그를 총 6단계로 구분하여 작성하는 것이 원칙

  • FATAL : 시스템이 다운되는 치명적인 상황(직접 작성 불가)
  • ERROR : 기능이 정지되는 상황
  • WARN : 기능은 작동하지만 우려가 발생하는 상황
  • INFO : 기능이 실행된 정보를 알려주는 상황
  • DEBUG : 개발자를 위한 상세 정보를 알려주는 상황
  • TRACE : 시스템의 모든 상태를 추적하기 위한 메세지(직접 작성 불가)

◆ Logging의 목적

1) 디버깅 : 프로그램 개발 중 발생하는 오류를 찾고 수정하기 위해 로그를 사용할 수 있습니다.

2) 성능 분석 : 시스템의 성능을 분석하고 최적화하기 위해 로그를 통해 발생하는 이벤트와 메시지를 확인합니다.

3) 보안 감사 : 시스템의 보안 상태를 확인하고 취약점을 파악하기 위해 로그를 사용합니다.

4) 문제 해결 : 시스템이나 애플리케이션에서 발생하는 문제의 원인을 찾기 위해 로그를 분석합니다.

5) 이력 관리 : 시스템이나 애플리케이션의 변경사항이나 이벤트를 추적하기 위해 로그를 사용합니다.

◆ Spring에서 Logging 라이브러리를 대하는 자세

  • 스프링은 기술을 자체 제작하지 않는다.

  • 외부에 존재하는 기술을 연결시켜서 사용한다.

  • @Slf4j는 Lombok 라이브러리에서 제공하는 어노테이션으로, SLF4J(Simple Logging Facade for Java)를 이용하여 로깅을 쉽게 사용할 수 있게 해줍니다.

  • SLF4J를 사용하면, 로깅 프레임워크를 변경하더라도 코드를 수정할 필요 없이 의존성만 변경해주면 됩니다. 이렇게 하면 로깅 코드의 유연성이 증가하고, 다양한 로깅 프레임워크를 쉽게 교체할 수 있습니다.

profile
Backend Developer

0개의 댓글