본문 바로가기
  • 게임 개발과 프로그래밍 그리고 인공지능
웹 개발/Spring

로깅(Logging) 4 - Logback 설정하기 2 : 실습 문제 풀기

by huenuri 2024. 12. 31.

로그백에 대해 이론 학습을 진행했으니 이번에는 실습 문제를 풀어보며 내용을 이해해 보겠다.


 
 
 
 

실습 1 - 로그 레벨 지정하기

 


 
 
 

PostController


 


 
 
 
 

application.properties


 
 
경고로 설정하면 된다.


 
 
 
 

코드 실행하기

 
여기 보면 에러 메시지입니다, 경고레벨 메시지입니다 라는 문구가 뜨는데 그러면 잘 실행된 것이다.
 
 
 

 
이번 실습에서는 홈페이지에 나타나는 화면이 없다.


 
 
 
 
 

실습 2 - 게시판에 로깅 기능 적용하기

 


 
 
 

PostService


 
 
로깅 설정을 하고 로그 메시지를 출력하는 코드를 작성한다.


 
 
 

PostController

 
여기서 수정할 부분은 없다.


 
 
 

logback-spring.xml


 


 
 
 
 

코드 실행하기

코드를 실행하니 다음과 같은 오류가 발생했다.

 
이 에러는 Java 컴파일러가 info.log라는 식별자를 기대했지만, 실제로는 그 이후에 어떤 식별자가 없는 것으로 인식해서 발생했다. 또한, . 다음에 올 수 있는 표현식이 아니라는 이유로 “illegal start of type”(타입의 시작 부분이 잘못됨)이라는 경고도 함께 나타났다.
 
코드를 수정했는데도 되지 않아서 다시 한번 수정해 보았다. 그리고 문제가 무엇인지 알게 되었다. 코드 하나가 빠진 거였다. 위 코드에서 발생하는 문제는 info.log("post 전체 조회"); 구문에서 잘못된 로깅 호출 방식으로 인해 발생하는 오류이다.


 
 
 
 

코드 수정하기

 
 
 

 

 
 

 
 

수정 내용

  1. info.log()를 log.info()로 변경
    • info는 정의되지 않은 변수라 컴파일 오류가 발생했다.
    • @Slf4j 어노테이션이 추가되었으므로, log.info()를 사용해 로깅해야 한다.
  2. @Slf4j 어노테이션 사용
    • Lombok의 @Slf4j를 사용하면, 클래스 내부에 private static final Logger log = LoggerFactory.getLogger(ClassName.class);를 작성하지 않아도 됨

 
이 문제는 정말 어려웠다. 그래도 마지막에 잘 되어서 다행이었다. 이번에도 안되면 그냥 넘어가려고 했다.


 
 
 
 

학습을 마치고

실습 과제가 정말 어려웠다. 특히 2번 문제가. 그래도 3주차 과정을 모두 잘 마쳐서 감사했다. 이제 마지막 4주차 단원만 남아있다. 아침에 이 과목을 다 마치고 스프링 3에 들어갈 수 있을 것 같다.