본문 바로가기
MVC with 김영한

로깅(logging)

by wonseok99 2021. 10. 17.

운영 시스템에서는 sout 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다.

로깅 라이브러리

스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리 'spring-boot-starter-logging' 가 함께 포함된다.
수많은 로그 라이브러리(Logback, Log4J, Log4J2) 를 통합한 인터페이스가 SLF4J 라이브러리.
SLF4J 인터페이스의 구현체인 Logback 같은 로그 라이브러리를 선택한다.

로그 레벨 : TRACE > DEBUG > INFO > WARN > ERROR
- 개발 서버는 debug 출력
- 운영 서버는 info 출력
- default 값은 info

 

올바른 로그 사용법

  1. log.trace("trace log={}",name);
  2. log.trace("trace log=" + name);

이 둘의 차이점은 1번의 경우에는 trace 메소드에 파라미터 name을 넘기고 로그 레벨에 따라 로직을 결정한다 (의미없는 연산 X).
2번의 경우에는 로그 레벨에 상관없이 무조건 두 String에 대한 합연산을 진행하고 후에 로그 레벨에 따라 로직을 결정한다.

 

로그 사용의 장점

  • INFO 76773 --- [nio-8080-exec-7hello.springmvc.basic.LogTestController  : info log=spring
    쓰레드 정보, 클래스 이름과 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다.
  • 로그 레벨에 따라 로그출력의 상황을 조절할 수 있다.
  • sout 콘솔에만 출력하는 것 뿐만 아니라, 파일이나 네트워크 등 로그를 별도의 위치에 남길 수 있다. 특히 파일로 남길 때는 일별, 특정 용량에 따라 로그를 분할하는것이 가능하다.
  • sout 보다 성능이 좋다. (내부 버퍼링, 멀티 쓰레드 등등)

 

 

 

 

 

'MVC with 김영한' 카테고리의 다른 글

요청 매핑 핸들러 어뎁터  (0) 2021.10.22
HTTP 요청과 응답  (0) 2021.10.20
스프링 애노테이션  (0) 2021.10.16
스프링 MVC  (0) 2021.10.15
MVC 프레임워크  (0) 2021.10.07