반응형
이전에 로그 관련된 포스팅을 다룬적이 있다.
자세한 내용은 아래 참고 포스팅을 참고 바란다.
로그에서는 로그를 남길 수 있는 레벨이라는게 존재한다.
결론 먼저 말하면
TRACE < DEBUG < INFO < WARN < ERROR
- 로그 레벨에 따라 로그 메시지의 종류가 달라진다
- 레벨은 출력 범위를 나타내고, 현재 레벨 이상의 로그만 화면에 출력된다
ex) INFO Level이면 INFO 레벨 이상의 로그(INFO, WARN, ERROR)만 화면에 출력 - log4j의 경우 FATAL(심각한 에러 발생 시) 레벨까지 포함 (log4j 보안이슈로 log4j2 도 마찬가지)
그리하여 아래 5개의 단계로 로그를 관리한다.
- TRACE : 추적 레벨은 DEBUG보다 좀 더 상세한 정보를 표시
- DEBUG : 프로그램을 디버깅하기 위한 정보를 표시 (운영 서버에서는 표시하지 않도록 설정)
- INFO : 상태 변경과 같은 정보성 로그를 표시
- WARN : 처리 가능한 문제, 시스템 에러의 원인이 될 수 있는 경고성 메시지를 표시
- ERROR : 요청을 처리하는 중 오류가 발생한 경우 표시
예제 코드는 아래와 같다.
private Logger log = LoggerFactory.getLogger(this.getClass()); //단순 api @PostMapping("/test") public void testApi() { log.trace("가장 디테일한 로그"); log.debug("디버깅용 로그"); log.info("정보성 로그"); log.warn("경고"); log.error("에러"); |
그리고 로그 레벨은 yml 파일에 아래와 같이 설정해준다. (properties 파일 역시 가능 > 참고포스팅 참고)
logging: level: # 각 package 별로 로깅 레벨을 지정 가능 root: warn #root 는 전체 #com.test.study : error #com.test.study.api : debug #file: #name: ${user.dir}/log/test.log # 로깅 파일 위치 #max-history: 7 # 로그 파일 삭제 주기이다. 7일 이후 로그는 삭제 #max-size: 10MB # 로그 파일 하나당 최대 파일 사이즈 |
이렇게 하고 테스트를 돌리면 설정이 warn 이상인 로그만 출력이기에
2023-07-09T21:22:23.841+09:00 WARN 96516 --- [nio-8080-exec-3] com.test.etc.TestApi : 경고 2023-07-09T21:22:23.843+09:00 ERROR 96516 --- [nio-8080-exec-3] com.test.etc.TestApi : 에러 |
이렇게 경고와 에러만 출력이 된다.
참고 포스팅
https://thenicesj.tistory.com/476
https://thenicesj.tistory.com/69
https://thenicesj.tistory.com/531
반응형
'IT > Java' 카테고리의 다른 글
의존관계 주입시 Bean이 없을때 (63) | 2023.07.22 |
---|---|
디컴파일에 대해(.jar 파일, .class파일) (32) | 2023.07.21 |
spring.main.allow-bean-definition-overriding=true 자바Bean중복 에러 (50) | 2023.07.15 |
@Transactional 사용시 주의 사항2 (내부호출 / AOP 내부호출) (40) | 2023.07.11 |
@Transactional annotation (43) | 2023.07.10 |
댓글