250x250
Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

개린이 개발노트

[Spring] logging에 대하여(feat. print문과 비교) 본문

스프링Spring

[Spring] logging에 대하여(feat. print문과 비교)

개린이9999 2022. 11. 26. 13:44
728x90

[Spring] logging 에 대해 알아보자 (tistory.com)

 

실무에서는 System.out.println()과 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하거나 디버깅하지 않고, 별도의 logging 라이브러리를 사용하여 디버깅이나 타임스탬프 등 정해진 양식에 맞추어 화면 상이나 파일 로그를 남길 목적으로 사용합니다.

 

[Spring] logging 에 대해 알아보자

서론 실무에서는 System.out.println()과 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하거나 디버깅하지 않고, 별도의 logging 라이브러리를 사용하여 디버깅이나 타임스탬프 등 정해진 양식에 맞

dkswnkk.tistory.com

참조

스프링 부트는 spring- boot-starter-logging을 기본적으로 제공함


 어떻게 logging을 사용하고, 어떻게 이루어져 있는지 ↓

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Configuration
public class RedisScheduler {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    private void log(String name) {
        logger.trace("trace log={}", name);
        logger.debug("debug log={}", name);
        logger.info(" info log={}", name);
        logger.warn(" warn log={}", name);
        logger.error("error log={}", name);
    }

 

System.out.println()을 사용하지 않고 logging을 사용하는 이유

  1. 스레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다.
  2. 로그 레벨에 따라 개발서버에서는 모든 로그를 출력하고, 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절할 수 있다.
  3. 시스템 아웃 콘솔에만 출력하는 것이 아니라, 파일이나 네트워크 등, 로그를 별도의 위치에 남길 수 있다.
  4. 특히 파일로 남길 때에는 일별, 특정 용량에 따라 로그를 분할하는 것도 가능하다.
  5. println을 썼을 때보다 내부 버퍼링, 멀티 스레드 등의 환경에서 훨씬 좋다
  6. https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-logging.htmlc
 

26. Logging

Spring Boot uses Commons Logging for all internal logging but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging, Log4J2, and Logback. In each case, loggers are pre-configured to use console output with

docs.spring.io

참조 ↑

728x90