본문 바로가기
Framework/Spring

[SPRING 시작-4] # Logger (Eclipse+Spring+Maven) /로그설정 /logger가 찍히지 않아요

by 나비와꽃기린 2016. 10. 11.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

<<log level>>

FATAL

 아주 심각한 에러가 발생한 상태를 나타낸다.

ERROR

 어떠한 요청을 처리하는 중 문제가 발생한 상태를 나타낸다.

 WARN

 프로그램의 실행에는 문제가 없지만, 향후 시스템 에러의 원인이 될수 있는 경고성 메시  지를 나타낸다.

 INFO

 어떠한 상태변경과 같은 정보성 메시지를 나타낸다.

 DEBUG

 개발시 디버그 용도로 사용하는 메시지를 나타낸다.

 TRACE

 디버그 레벨이 너무 광범위한것을 해결하기 위해서 좀 더 상세한 이벤트를 나타낸다.


<<설정파일 log4j.xml>>
보통 개발 할 때는 info, debug로 낮은 레벨로 정의하여 사용한다. (디버그를 위해)

하지만 실제 서비스시에는 많은 양의 로그를 찍는것은 시스템 효율상 좋지 않으므로 보통 error로 로깅 레벨을 변경하고 파일을 저장한다.


info 레벨부터 상위 모든 레벨의 로그를 찍겠다는 의미이다.

<!-- Root Logger -->
<root>
	<priority value="info" />
	<appender-ref ref="console" />
</root>

따라서 코드가 다음과 같다면

@RequestMapping(value = "/", method = RequestMethod.GET)     public String home(Locale locale, Model model) { logger.debug("debug 222222222222222222222222222222222222222"); logger.info("info 333333333333333333333333333333333333"); logger.warn("warn 555555555555555555555555555555555555555555555"); logger.error("error 4444444444444444444444444444444444444444444444444");

로그에는 다음과 같이 info이상의 레벨만 찍히게 된다.


INFO : com.aaa.aaa.HomeController - info 333333333333333333333333333333333333

WARN : com.aaa.aaa.HomeController - warn 555555555555555555555555555555555555555555555

ERROR: com.aaa.aaa.HomeController - error 4444444444444444444444444444444444444444444444444


<<log가 찍히지 않아요>>

혹시 logger가 찍히지 않아요 하는 분들이 계시다면

log4j.xml의 Root Logger 옵션 value가 off인지 아닌지 확인해보세요~~~~~~~~ 

off로 설정되어 있다면 logger가 찍히지 않는답니다.


<<log가 두번 찍혀요>>

또한, 자식 logger에서 로그 이벤트가 발생하면 부모에게도 전달이 되는데 이런 구조때문에 logger가 2번씩 찍힌다? 하는 경우가 생긴다.

이런경우 로그의 사이즈도 매우 커지고 이런저런 문제가 생기므로

additivity="false" 라는 속성을 주어 해결할 수 있다.