로그 또는 로깅이라는 단어를 개발하면서 한번쯤 들어보거나 log.error("==ERROR==")와 같은 코드를 보았던 적이 있을 것이다. (나 또한 마찬가지이다.)
그저 System.out.print 와 다를바 없이 코드의 흐름을 파악할 때 사용하는 용도 중 하나라고만 막연하게 생각했다.
로그에 대해 알아보기 전에 로그와 로깅 이 두가지를 혼동하는 나를 위해 그리고 나와 같이 혼동하고 있을 또 다른 개발자분들을 위해 오늘은 로그가 무엇인지 로깅이 무엇인지 제대로 알아보자.
로그란?
- 운영체제나 소프트웨어가 실행되어 돌아가는 중에 발생되는 이벤트 및 메시지가 기록된 데이터 그 자체를 의미한다.
로깅이란?
- 이런 '로그' 데이터를 기록하는 행위를 의미한다. 다른 말로 이벤트 및 메시지가 기록된 '로그'를 생성하는 과정이라고도 한다.
따라서 개발을 하면서 내가 만든 코드나 서비스 및 소프트웨어가 잘 실행되어 돌아가는지,
특별한 에러나 이벤트가 발생하지는 않는지 등의 특정 이벤트들을 살펴보기 위해서는
이벤트 및 메시지 데이터인 로그를 만들어내는 로깅을 사용할 줄 알아야한다고 나는 생각한다.
그렇다고 로그를 마구잡이 원하는대로 사용을 하게 되면 오히려 더 혼란을 일으켜 효율성이 떨어질 수가 있다.
로그에는 해당 메시지가 얼마나 중요한지를 알려주는 로그 레벨이 존재한다.
로그 레벨에는 trace -> debug -> info -> warn -> error -> fatal 단계 로 볼 수가 있다.
위 순서대로 이벤트 및 메시지의 심각성과 중요성이 점점 높다.
경우에 따라 사용하는 로그가 달라진다니.. 어떠한 이벤트가 발생했을 때 어떤 로그를 사용해야하는지 궁금해졌다!
이러한 각 로그 레벨을 어느정도의 중요성에서 사용해야 하는지, 어떠한 경우에 사용하면 좋을지에 대해서는 다음 글에서 알아보자!
* 참고 및 참조
- 자바 로깅 프레임워크 알아보기 : https://mark-kim.blog/history_of_java_logging/
자바 로깅 프레임워크 히스토리 이해하기
자바는 Log4j, Logback, JUL, JCL 및 slf4j등등 많은 프레임워크가 존재해서 주변 개발자를보면 대부분 로그 관련하여 굉장히 혼란스러워한다. 이번 글은 이러한 자바 로깅 프레임워크의 역사에 대해서
mark-kim.blog
- 로그 레벨 설명 및 warn,error 구분 사용예시 : https://jojoldu.tistory.com/712
1. 효율적으로 로그 모니터링하기 - 로그 레벨 구분하기
365/24 로 관리하는 시스템에서 로그는 굉장히 중요하다. 하지만 로그가 중요하다는 생각에 무분별하게 남기는 것은 좋지 않다. 대표적인 예로 습관적으로 예외 상황이 발생하면 ERROR 레벨로 로그
jojoldu.tistory.com
'Java' 카테고리의 다른 글
[Log]로그 레벨 (0) | 2024.07.12 |
---|---|
[정보처리기사]21년도_3회차_연산자 (0) | 2023.07.21 |
[정보처리기사]20년도_4회차_오버라이딩 (0) | 2023.07.21 |
JDBC (1) | 2022.12.22 |
참조 타입 (0) | 2022.12.09 |