로그백에 대해 이론 학습을 진행했으니 이번에는 실습 문제를 풀어보며 내용을 이해해 보겠다.
실습 1 - 로그 레벨 지정하기
PostController
application.properties
경고로 설정하면 된다.
코드 실행하기
여기 보면 에러 메시지입니다, 경고레벨 메시지입니다 라는 문구가 뜨는데 그러면 잘 실행된 것이다.
이번 실습에서는 홈페이지에 나타나는 화면이 없다.
실습 2 - 게시판에 로깅 기능 적용하기
PostService
로깅 설정을 하고 로그 메시지를 출력하는 코드를 작성한다.
PostController
여기서 수정할 부분은 없다.
logback-spring.xml
코드 실행하기
코드를 실행하니 다음과 같은 오류가 발생했다.
이 에러는 Java 컴파일러가 info.log라는 식별자를 기대했지만, 실제로는 그 이후에 어떤 식별자가 없는 것으로 인식해서 발생했다. 또한, . 다음에 올 수 있는 표현식이 아니라는 이유로 “illegal start of type”(타입의 시작 부분이 잘못됨)이라는 경고도 함께 나타났다.
코드를 수정했는데도 되지 않아서 다시 한번 수정해 보았다. 그리고 문제가 무엇인지 알게 되었다. 코드 하나가 빠진 거였다. 위 코드에서 발생하는 문제는 info.log("post 전체 조회"); 구문에서 잘못된 로깅 호출 방식으로 인해 발생하는 오류이다.
코드 수정하기
수정 내용
- info.log()를 log.info()로 변경
- info는 정의되지 않은 변수라 컴파일 오류가 발생했다.
- @Slf4j 어노테이션이 추가되었으므로, log.info()를 사용해 로깅해야 한다.
- @Slf4j 어노테이션 사용
- Lombok의 @Slf4j를 사용하면, 클래스 내부에 private static final Logger log = LoggerFactory.getLogger(ClassName.class);를 작성하지 않아도 됨
이 문제는 정말 어려웠다. 그래도 마지막에 잘 되어서 다행이었다. 이번에도 안되면 그냥 넘어가려고 했다.
학습을 마치고
실습 과제가 정말 어려웠다. 특히 2번 문제가. 그래도 3주차 과정을 모두 잘 마쳐서 감사했다. 이제 마지막 4주차 단원만 남아있다. 아침에 이 과목을 다 마치고 스프링 3에 들어갈 수 있을 것 같다.
'웹 개발 > Spring' 카테고리의 다른 글
JUnit 2 - JUnit 구조와 작성법 1 : 이론 학습 및 퀴즈 문제 풀기 (0) | 2024.12.31 |
---|---|
JUnit 1 - 테스트의 필요성 (0) | 2024.12.31 |
로깅(Logging) 3 - Logback 설정하기 1 : 이론 학습 (0) | 2024.12.31 |
로깅(Logging) 2 - Spring Boot의 로깅 (0) | 2024.12.31 |
로깅(Logging) 1 - 로깅의 필요성 (0) | 2024.12.31 |