-
[스프링] Loging 로깅스프링 2023. 2. 1. 13:43728x90
로깅 라이브러리
스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다.
1. SLF4J - http://www.slf4j.org
SLF4J
Simple Logging Facade for Java (SLF4J) The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framewor
www.slf4j.org
2. Logback - http://logback.qos.ch
Logback Home
Logback Project Logback is intended as a successor to the popular log4j project, picking up where log4j 1.x leaves off. Logback's architecture is quite generic so as to apply under different circumstances. At present time, logback is divided into three mod
logback.qos.ch
로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다.
-> SLF4J는 인터페이스고, 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다
실무에서는 항상 로그를 사용해야 한다 ( system.out.println() 이 아니라 )
로그 레벨 : TRACE > DEBUG > INFO > WARN > ERROR 이렇게 있고 trace 로 갈수록 많은 정보를 보여준다
참고,
- 개발 서버는 Debug
- 운영 서버는 Info로그 레벨 설정
application.properties #전체 로그 레벨 설정(기본 info) logging.level.root=info #hello.springmvc 패키지와 그 하위 로그 레벨 설정 logging.level.hello.springmvc=debug로그 사용법
log.debug("data={}", data) -> 올바름 log.debug("data="+data) -> 올바르지 못함올바르지 못한 이유는 로그 출력 레벨을 info로 설정해도 해당 코드에 있는 "data="+data가 실제 실행이 되어 버린다. 결과적으로 문자 더하기 연산이 발생한다.
로그 사용시 장점
- 쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다.
- 로그 레벨에 따라 개발 서버에서는 모든 로그를 출력하고, 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절할 수 있다.
- 시스템 아웃 콘솔에만 출력하는 것이 아니라, 파일이나 네트워크 등, 로그를 별도의 위치에 남길 수 있다. 특히 파일로 남길 때는 일별, 특정 용량에 따라 로그를 분할하는 것도 가능하다.
- 성능도 일반 System.out보다 좋다. (내부 버퍼링, 멀티 쓰레드 등등)
참고
- 인프런 김영한 선생님의 MVC1
'스프링' 카테고리의 다른 글
[스프링] IoC, DI (0) 2023.10.04 [스프링] jar, war 차이점 (0) 2023.02.01 [스프링] JDK17사용시에 주의할 점 (0) 2023.01.27 [스프링] Gradle, Maven 차이점 (0) 2023.01.07 [스프링] 예외처리, 성능 최적화 (2) 2022.12.29