Logger 사용
시스템이 작동하는 동안 발생하는 어떤 이벤트의 동작을 확인하고 싶을 때가 있다. 개발을 해본 사람이라면 언어 불문하고 누구나 시도해봤을 일이다. (아마도 “print”를 사용해서)
간단한 Logging 작업으로 printf를 사용하는 것도 나쁘진 않으나 Java에서는 이러한 이벤트 기록 용으로 제공하는 라이브러리가 존재한다.
Log4j라던지 SLF4J라던지 JUL(java util logging)이라던지… 수많은 로그 라이브러리들이 있으며 이 중 SLF4J(Simple Logging Facade for Java)는 다양한 로깅 프레임워크를 추상화 해주는 인터페이스의 모음이다. 인터페이스의 사용으로 개발자는 이후 로깅 라이브러리를 변경하더라도 코드를 수정할 필요가 없어진다.
slf4j 사용 방법
slf4j은 두 가지 방법으로 사용 가능하다.
방법1
1
Logger log = LoggerFactory.getLogger(getClass());
방법2
1
2
3
4
@Slf4j
public class HomeController {
...
}
아래는 slf4j을 사용하여 controller가 실행됐는지 확인하는 예시이다.
1
2
3
4
5
6
7
8
9
10
@Controller
@Slf4j
public class HomeController {
@RequestMapping("/")
public String home() {
log.info("home controller");
return "home";
}
}
정상적으로 home controller가 출력됐음을 확인할 수 있다. 따라서 우리는 home Controller가 실행은 되었으나 그 안에서 오류가 발생했단 것 또한 알 수 있다.