[Spring] 로그 사용하기

EB·2021년 8월 25일
0
post-custom-banner

🦄로깅

  • 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리
    ( spring-boot-starter-logging) 가 함께 포함된다.
  • 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다.

👩‍💻 로그선언 하기

📌private Logger log = LoggerFactory.getLogger(getClass());
📌@Slf4j : 롬복 사용 가능

👩‍💻 @Slf4j 란?

  • 롬복(lombok)이 제공하는 애노테이션
  • private final Logger log = LoggerFactory.getLogger(getClass());
    를 대신 해준다.

👩‍💻 로그 호출

  • System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다.

👩‍💻 로그 사용시 장점

  • 쓰레드 정보, 클래스 이름과 같은 부가 정보를 함께 볼 수 있다.
  • 로그 레벨에 따라 개발 서버에는 모든 로그 출력, 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절 할 수 있다.
  • 시스템 아웃 콘솔에만 출력하는 것이 아니라 파일이나 네트워크 등, 로그를 별도의 위치에 남길 수 있다. 로그를 분할하는 것도 가능하다.

👩‍💻 올바른 로그 사용법

⭕ log.trace("trace log={}", name); 
❌ log.trace("trace my log=" + name);
  • , 를 사용할 경우 : 아무런 연산이 일어나지 않는다.
  • + 를 사용할 경우 : "trace my log"+ name이 실행되어 더하는 연산이 일어난다. trace를 쓰지않는데도 연산이 일어나면서 리소스를 사용하게 된다.

👩‍💻 로그 사용시 모습

🤔 @RestController를 사용하는 이유

  • @Controller는 반환값이 String이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 랜더링 된다.
  • @RestController는 반환값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력한다. 따라서 "ok" 메시지를 받을 수 있다.
profile
👩‍💻✨junior developer
post-custom-banner

0개의 댓글