로그가 대체 무엇이며 왜쓸까?
로그는 스프링 프로젝트를 만들고 실행을 해보면 바로 볼 수가 있다.
로그는 다음과같이 날짜 , 중요도 , 발생한 위치 , 내용 순으로 찍어준다.
이 로그는 디버깅할때 코드 중간중간에 넣어서 확인용으로 쓰이거나 요청메시지를 찍고싶을때 쓴다.
근데 이런 비슷한 성질을 가지는 명령어가 하나 떠오르는데 바로,
System.out.println() 이다. 자바에서 출력문을 볼때 정말 많이 썻던 것이다.
둘이 비교를 한번해보자.
두줄씩 써봣다. print 문과 log문이다.
그렇다. print문은 딱 내용만 보여준다.
이것이 문제가되는이유는 만약 서버에서 Error가 떳으면 그 Error 가 언제 , 어디서, 무슨내용이 터진지 알아야한다.
print문은 딱 '내용'만 알려주니 정보가 매우부족하다. 그래서 실무엔 print문을 안쓰고 log를 사용한다.
로그를 남기면 로그를따로 뽑아서 파일형태로만들어서 모아볼수도있으며,
레벨마다 따로 모아봐서 디버깅할때도 편리하게 쓸 수 있다.
로그의 5가지의 레벨(중요도)
1. Trace
2. Debug
3. Info
4. Warn
5. Error
스프링은 기본적으로 로그를 Info,Warn,Error를 찍어준다.
Trace와 Debug도 물론 찍을수 있지만 추천하지않는다. 왜냐하면 스프링이 기본으로 지원하는 라이브러리에
Trace와 Debug 로그가 엄청나게많다. 정작 내 프로젝트 로그를보려면 한참 내려가야한다.
로그는 이 5가지의 레벨을 통해, 메시지의 중요도를 부가할수있다.
Info같은경우 요청메시지같은것이 발생할때
Warn 같은경우 해당 로그가 호출되면 서버가 위험하다는 메시지를,
Error 같은경우, 해당 로그가 호출되면 서버가 에러가 터졋다는 의미를 부여할수있다.
로그 사용법
로그는 기본적으로 라이브러리다. 그래서 사용자가 직접 라이브러리를 추가해야되는데,
정말 간단하게 사용할수 있는 방법을 하나 소개한다.
Lombok 라이브러리의 @Slf4j
Lombok 라이브러리는 반복되는코드를 어노테이션으로 깔끔하게 압축시켜놓은 라이브러리다.
아래 링크를통해서 자세히 알아보세요.
https://taehoung0102.tistory.com/137
Lombok 라이브러리중 @Slf4j는 이 어노테이션을 입력하면 바로 로그를 찍게해준다.
정말 편하다!
'자바 > 스프링(Spring)' 카테고리의 다른 글
스프링 Redirect를 활용해보자 (0) | 2022.04.19 |
---|---|
스프링 @ModelAttribute 에 관하여 (0) | 2022.04.19 |
스프링: 영속 컨텍스트 (Persistence Context) (0) | 2022.01.08 |
웹 스코프(Scope)와 프록시 기술 (0) | 2021.12.31 |
스프링 빈 생명주기 (0) | 2021.12.26 |