운영 시스템에서는 sout 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다.
로깅 라이브러리
스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리 'spring-boot-starter-logging' 가 함께 포함된다.
수많은 로그 라이브러리(Logback, Log4J, Log4J2) 를 통합한 인터페이스가 SLF4J 라이브러리.
SLF4J 인터페이스의 구현체인 Logback 같은 로그 라이브러리를 선택한다.
로그 레벨 : TRACE > DEBUG > INFO > WARN > ERROR
- 개발 서버는 debug 출력
- 운영 서버는 info 출력
- default 값은 info
올바른 로그 사용법
- log.trace("trace log={}",name);
- log.trace("trace log=" + name);
이 둘의 차이점은 1번의 경우에는 trace 메소드에 파라미터 name을 넘기고 로그 레벨에 따라 로직을 결정한다 (의미없는 연산 X).
2번의 경우에는 로그 레벨에 상관없이 무조건 두 String에 대한 합연산을 진행하고 후에 로그 레벨에 따라 로직을 결정한다.
로그 사용의 장점
- INFO 76773 --- [nio-8080-exec-7] hello.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 |