[Spring] logging

hi·2022년 9월 9일
0

스프링 부트 라이브러리는 로깅 라이브러리를 포함
기본적으로 아래 라이브러리 사용

SLF3J : Logback, Log4J 등 여러 로그 라이브러리를 통합해 인터페이스로 제공
Logback

로그 선언

private Logger log = LoggerFactory.getLogger(getClass());
private static final Logger log = LoggerFactory.getLogger(클래스명.class)

아래로 대신할 수 있다

@Slf4j 롬복 제공

로그 호출 방법

두 가지 방법이 있으나 로그를 사용하면 여러 장점이 있다
실무에서는 항상 로그를 사용해야 함

log.info( );
System.out.println( );

출력 방식

System.out.println("name = " + name);
log.info("info log={}", name);

👇
로그가 더 많은 정보를 제공한다

로그 출력 포맷

시간 | 로그 레벨 | 프로세스 ID | [쓰레드 명] | 클래스명 : 로그 메세지

로그 레벨

TRACE - DEBUG - INFO - WARN - ERROR

로그 레벨 설정

application.properties에 작성

  • 전체 로그 레벨 설정(기본 info) logging.level.root=info
  • hello.springmvc 패키지와 그 하위 로그 레벨 설정 logging.level.hello.springmvc=debug

상황에 맞게 조절할 수 있다. 보통 다음과 같이 사용

개발 서버 : debug
운영 서버 : info

올바른 로그 사용

log.debug("data={}", data) O
log.debug("data="+data) X

+ 를 사용해 출력하면 해당 코드의 "data="+data가 실제 연산됨
따라서 로그가 출력되지 않더라도 리소스가 낭비된다

로그 장점

  • 부가 정보를 함께 볼 수 있고, 출력 모양 조정 가능
  • 로그 레벨에 따라 개발 서버, 운영 서버 등 상황에 맞게 조절 가능
  • 콘솔에만 출력하는 것이 아니라 파일, 네트워크 등 별도의 위치에 남길 수 있고
    파일은 일별, 특정 용량에 따라 로그 분할도 가능하다
  • 내부 버퍼링, 멀티 쓰레드 등 성능이 좋다

정보
SLF4J - http://www.slf4j.org
Logback - http://logback.qos.ch
스프링 부트가 제공하는 로그 기능 - https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging

0개의 댓글