본문 바로가기
백엔드/Spring(Boot)

로깅

by 김어찐 2021. 9. 8.
728x90

로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다

 

SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다.

 

로그 선언

  • private Logger log = LoggerFactory.getLogger(getClass());
  • private static final Logger log = LoggerFactory.getLogger(Xxx.class)
  • @Slf4j : 롬복 사용 가능

 

로그 호출

  • log.info("hello")

실무에서는 항상 로그를 사용해야 한다.

 

package hello.springmvc.basic;

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

// @Controller 문자열을 반환시 뷰 템플릿 이름 반환
@Slf4j
@RestController // 문자열을 리턴시 해당 문자열을 http 바디에 문자열을 바로 입력
public class LogTestController {

    // 로거 패키지는 slf4j 사용
    /// @Slf4j 어노테이션 작성시 아래 적은거와 마찬가지
    //private final Logger log = LoggerFactory.getLogger(getClass());

    @RequestMapping("/log-test")
    public String logTest(){
        String name = "Spring";

        System.out.println("name = " + name);
        
        
        
        // 로그 레밸
        log.trace(" trace log={}", name);
        log.debug(" debug log={}", name);

        //(default) 운영서버에서는 info
        log.info(" info log={}", name);
        log.warn(" warn log={}", name);
        log.error(" error log={}", name);

        // 로그 작성시 포맷팅으로 표시
        // 이렇게 표시하면 출력 로그레벨이 아니어도 문자열 합 계산 실행
        log.trace(" trace log="+ name);
        return "ok";
    }
}

 

application.properties

# 전체 로그 레벨 설정(기본 info)
logging.level.root=info
#hello.springmvc 패키지와 그 하위 로그 레벨 설정
#(default) 운영서버에서는 info
logging.level.hello.springmvc=debug

 

728x90

'백엔드 > Spring(Boot)' 카테고리의 다른 글

스프링 API 개발 기초  (0) 2021.09.09
스프링 요청 매핑  (0) 2021.09.09
JPA 페이징  (0) 2021.09.03
프로젝션 - 여러 값 조회  (0) 2021.09.03
JPQL 문법  (0) 2021.09.03