디버그 로그가 안뜬 상황
AppConfig 관련해서 ComponeteScan 실습을 하는 도중에
아래와 같은 디버그 로그가 출력이 안되는 경우가 생겼다.
사용하는 스프링 버전은 3.2이고 이거 관련해서 찾아보니 로그레벨이 INFO로 설정되어서 그렇다고한다.
따라서 스프링 3.1은 기존과 같이 디버그 로그를 보고싶으면 로그레벨을 INFO -> DEBUG로 변경해줘야한다
로그 레벨 종류
변경에 앞서 log4j가 뭔지, 로그레벨을 왜 변경해줘야하는건지 그리고 종류에는 무엇이 있는지 설명하겠다
log4j
- Java 환경의 로깅 시스템을 제공하는 라이브러리이다.
- 로깅이란 로그 기록이란 뜻으로 사용자의 패턴이나 시스템 동작 분석에 사용되거나 해킹 사고가 발생할 경우 비정상 동작의
기록을 통해 추적하는데 사용된다. 또한 디버깅에도 활용이 되어 유용하다. - 6가지의 로그 레벨을 통해 대략적인 로그 정보 및 단계설정을 하여 불필요한 로그를 보지 않게 설정 할 수 있다
로그레벨
- TRACE: 디버그 레벨이 너무 광범위한 것을 해결하기 위해서 좀 더 상세한 상태를 나타낸다
- DEBUG: 개발시 디버그 용도로 사용한 메세지를 나타낸다
- INFO: 로그인, 상태변경과 같은 정보성 메시지를 나타낸다
- WARN: 처리 가능한 문제이지만 향후 시스템 에러의 원인이 될 수 있는 경고성 메세지를 나타낸다
- ERROR: 요청을 처리하는중 문제가 발생한 상태를 나타낸다
- FATAL: 아주 심각한 에러가 발생한 상태를 나타낸다. 시스템적으로 심각한 문제가 발생해서 어플리케이션이 작동이 불가능할 경우가 해당된다.
중요한 순서
FATAL>ERROR>WARN>INFO>DEBUG>TRACE 순이며 정한 로그레벨보다 높은 로그와 해당 로그를 출력한다.
ex. 로그레벨을 INFO로 설정하면 FATAL,ERROR,WARN,INFO로그만 출력하고 INFO보다 덜 중요하다고 판단되는
DEBUG와 TRACE는 출력하지 않게 된다.
결론
- 결국 지금 DEBUG로그가 출력되지않는건 그이상으로 로그 레벨이 설정되어 있는 것이다. 따라서 로그레벨을 DEBUG로
변경해주어야 한다
로그 레벨 변경
다음 위치에 logback.xml파일을 만들어 주면 된다.
src/main/resources/logback.xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
결과 확인
이제는 정상적으로 DEBUG로그가 뜨는것을 확인 할 수 있다.
출처
인프론 스프링 관련 질의응답
https://www.inflearn.com/questions/902500/로그가-갑자기-안나옵니다-
로그레벨 종류
https://xxvigrufv.tistory.com/2
'스프링' 카테고리의 다른 글
AWS S3와 IAM 생성: 스프링과의 연동 방법 및 이미지 저장 (0) | 2024.03.20 |
---|---|
[Spring] Validation 종류 및 적용 (0) | 2024.03.15 |
[스프링] 혼자 구현하는 웹 서비스1: 프로젝트 세팅 (0) | 2024.01.08 |
Google Drive API를 활용한 이미지 업로드 및 Url반환(스프링 서비스단계 구현) (0) | 2023.08.26 |