개발에 있어서 에러는 필연적인 숙명이라고 생각한다.
개발을 하면서 에러가 안날 거 같다고 자신에 차서 코딩을 한다기 보다는,
에러가 나더라도 어디서 에러가 났는지 찾을 수 있게끔 코딩을 하자! 에 더 무게를 두고서 코딩을 하는 편이다.
한번에 완벽해지리라는 없으니, 에러를 확인하기 좋고, 더 나은 코드로 디벨롭하기 좋은 모양새로 코딩을 짜는 게 더 낫다고 생각한지 오래다.
(난 에러없이 똑똭똭똭똭 개발할래~ 이런 꿈보다는 에러가 나타나도 잘 해결할랜다! 하는 개발자가 되는 것이 내 목표!)
그래서 값들을 추적하고, 어느 layer에서 오류가 난건지 쉽게 알 수 있도록 logger 기능을 세팅하고 HTTP요청 메세지를 편리하게 콘솔창에 볼 수 있도록 log찍기로 세팅해보도록 하겠다.
logger 세팅하는 방법
Project 폴더 > resources - application.properties에 감
logging.level.org.apache.coyote.http11=debug
서버 재시작 ON
.
.
.
HTTP 요청 메세지가 따란..이렇게 콘솔에 쫙 뜬 것을 볼 수 있다.
이 기능으로 인해, 요청메세지가 잘 뜨는지, 안뜬다면 어디에서 막혀서 에러가 난건지를 다 확인할 수 있다.
단, 매 단계에서 이렇게 로그를 찍어 요청 정보를 남기게 되면은 당연히 성능저하가 발생할 수 있기 때문에 '개발단계' 한정 적용하도록 하자.
# 개발 환경에서만 적용되는 로그 설정
spring.profiles.active=dev
# 모든 로그를 출력하는 설정
logging.level.root=debug
# 특정 패키지의 로그 레벨 설정
logging.level.org.apache.coyote.http11=debug
syso야..안녕...
1. log가 알려주는 5가지 로그레벨
TRACE << DEBUG << INFO << WARN << ERROR
1)🆘ERROR : 요청을 처리하다가 오류가 발생했을 때
2)🫣 WARN : 오류는 아닌데 알면 좋은 경고성 메세지 띄울 때
3) 😎INFO : 상태변경이나 변화가 생겼을 때 알려주는 정보제공 로그를 표시할 때
4) 🤓DEBUG : 프로그램을 역추적,디버깅하기 위한 정보를 표시할 때
5) 🥸TRACE : 디버그보다 한 수 위인 정보를 나타낼 때
숫자가 작을 수록 로깅 레벨이 높다고 보면 된다.만약에 내가 3 레벨의 설정을 하면 4,5레벨은 알려주지 않음!!그러므로, 필요로 할때 필요로 하는 만큼의 레벨을 로깅 레벨에 적어주면 되는 것이다.
2. 로그 레벨 지정하는 법2-1) 프로그램 전체에 로그 레벨 지정할 때
logging.level.root = info
2-2) 패키지별로 로깅 레벨을 따로 지정하고 싶을 때
logging.level:
org.hibernate.SQL: debug
com.boot.hotel: info
com.boot.hotel.controller:debug
본인이 바라는 대로 로깅 레벨을 설정하고 싶을 때는 이렇게 하면 된다.
com.boot.hotel 패키지 전체에는 info 이상의 log 단계를,
com.boot.hotel.controller라는 컨트롤러 패키지의 로그 단계는 debug 이상의 단계를 설정하면 된다.
설정을 하면 이런식으로 로그가 찍히는 것을 볼 수 있다.
'짤막 지식' 카테고리의 다른 글
[면접을 마치며] 신입 백엔드 개발자의 1차 면접 회고 (0) | 2024.04.09 |
---|---|
[짤막 지식] 쿼리 파라미터 로그 남기기 (0) | 2024.01.27 |
[짤막 지식] 디버깅 syso과 log 찍기 차이점! (0) | 2023.12.10 |
[짤막 지식] h2 Database 연결 안될 때... (0) | 2023.12.10 |
[짤막 지식] 인텔리제이에서 default branch 변경하는 법 (0) | 2023.12.09 |