Spring | 로그 레벨 (Logging Level)

바다·2024년 5월 2일
0

Spring

목록 보기
1/13
post-thumbnail
System.out.println("아직도 이렇게 출력하시나요?");

운영 시스템에서는 System.out.println()을 사용해서 필용한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다!

그동안 로그... 들어보긴 했고 쓰라고 해서 쓰긴 했지만,
왜 쓰는지 모르고 어떻게 쓰는지 몰랐기 때문에 이 글에서 간단하게 로그가 무엇인지 정리해보려고 한다!

로그(Log)

로그(Log)란, 프로그램 또는 시스템에서 발생하는 이벤트, 정보, 상태, 오류 등을 기록한 것을 말하며 이러한 로그를 생성하고 저장하는 것을 로깅(Logging)이라고 한다.

로그 :기록된 데이터
로깅 : 생성하고 저장하는 프로세스와 도구를 모두 아우르는 말


로그를 왜 써야 할까?

로그는 프로그램의 동작을 추적해 문제를 해결하거나 성능을 분석하기 위한 목적으로 활용된다. 이 때문에 로그 관리는 프로그램 개발과 운영에 아주 중요한 역할을 한다!

로그 레벨

  • 로그 레벨은 해당 로그 메세지가 얼마나 중요한지를 알려주는 정보이다.
  • 로그 레벨은 로깅 시스템에서 사용되며, 로그 메시지의 중요도에 따라 해당 메시지를 기록할지 결정하는데 사용된다.
  • 로그 수준은 시스템 상태에 대한 중요한 정보와 순전히 유익한 정보를 필터링하는 방법으로 생각할 수 있다.
  • 로그 수준은 정보 노이즈 및 경고 피로를 줄이는 데 도움이 될 수 있다.

1. TRACE

  • 가장 상세한 로그 레벨
  • 애플리케이션의 실행 흐름과 디버깅 정보를 상세히 기록
  • 주로 디버깅 시에 사용

2. DEBUG

  • 디버깅 목적으로 사용
  • 개발 단계에서 상세한 정보를 기록
  • 애플리케이션의 내부 동작을 이해하고 문제를 분석하는 데 도움을 줌
  • 운영 환경에서는 남기고 싶지 않은 로그 메시지를 위한 레벨

3. INFO

  • 애플리케이션에서 정상 작동에 대한 정보 즉, 어떤 일이 발생했음을 나타내는 표준 로그 레벨
  • 애플리케이션 상태, 설정 또는 외부 리소스와의 상호 작용과 같은 상태 확인을 위한 이벤트를 나타냄
  • 시스템을 파악하는 데 유익한 정보여야만 한다
  • 운영 환경에서도 사용될 수 있다

4. WARN

  • 경고성 메시지를 기록
  • 예상치 못한 문제나 잠재적인 오류 상황을 알리는 메시지
  • 이 레벨의 메세지는 개발자가 조치를 취할 수 있도록 주의를 기울일 필요가 있는 상황을 나타냄
  • 운영 환경에서도 사용될 수 있다

5. ERROR

  • 오류 메시지를 기록
  • 심각한 문제 또는 예외 상황을 나타냄
  • 능 자체가 제대로 작동하지 못하는 문제일때 남겨야 하며 즉시 조치가 필요할때를 의미
  • 운영 환경에서도 사용될 수 있다

6. FATAL

  • 가장 심각한 오류 메시지를 기록
  • 애플리케이션의 동작을 중단시킬 수 있는 치명적인 오류를 나타냄
  • 이러한 오류는 복구가 불가능하거나 매우 어려운 상황을 의미
  • 일반적으로 애플리케이션에서는 사용할 일이 없음

우리에게 필요한 것은?

INFO, WARN, ERROR 레벨을 구분하는 것

  • 예외 상황, 오류 상황이 모두 ERROR일 수는 없다
  • 일반적이지 않은 예외 상황이 발생했더라도, 그 상황이 개발자가 제어할 수 없는 상황이라면 이는 WARN으로 두는 것이 좋다
  • 단순한 상황 정보만으로 결정할 수는 없는 문제이다
  • 레벨을 선택할 때 논리적인 이유를 가지고 일관성 있게 해야 한다

결국 로그는 문제가 발생했을 때 쉽게 문제의 원인을 파악하고 해결하기 위함

profile
ᴘʜɪʟɪᴘᴘɪᴀɴs 3:14

0개의 댓글