ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 로그 출력
    스프링/스프링 MVC 패턴 2023. 2. 13. 11:51

    자바 공부를 할 때 지금까지 System.out.println()을 사용했다.

    하지만 위와 같은 출력 방법은 괄호 안에 있는 모든 데이터를 일방적으로 출력하기 때문에 실무에서는 거의 사용하지 않는다고 한다. System.out.println()보다는 로그를 이용해서 출력하는 방법을 사용한다고 한다.

     

    @Slf4j // 로그 출력을 사용하게 해주는 애노테이션
    @RestController  //  그냥 컨트롤러는 view 이름이 반환되지만 RestController는 문자를 반환할 수 있다.
    public class LogTestController {
    //    private final Logger log = LoggerFactory.getLogger(LogTestController.class);
    //    @Slf4j로 대체
    
        @RequestMapping("/log-test")
        public String logTest() {
            String name = "spring";
    
            System.out.println("name = " + name);
    
            log.trace("trace log ={}", name);
            log.debug("debug log ={}", name);
            log.info(" info log={}", name);
            log.warn(" warn log={}", name);
            log.error("error log={}", name);
            // 대괄호는 뒤에 문자가 치환이 됨
    
            return "ok";
        }
    }

    로그 출력의 장점은 로그 레벨 설정을 통해서 원하는 분야만의 로그를 남길 수 있다. System.out.println()같은 출력 방식을 사용하게 된다면 사용자가 들어올 때마다 기록을 남기게 되어서 오류가 발생했을 때 찾기 힘들 것이다.

     

    하지만 로그 방식을 통해서 개발 서버에서는 debug로 배포하고 운영 서버에서는 info로 배포하면 개발 서버에서는 debug, info, warn, error가 출력되고, 운영 서버에서는 info, warn, error가 출력 될 것이다.

    // 로그 레벨  LEVEL : TRACE > DEBUG > INFO > WARN > ERROR

     

    실제 코드를 변경하지 않고 설정을 통해서 레벨을 설정할 수 있다는 것이 로그 출력의 장점이다.

     

    application.properties에서

    logging.level.hello.springmvc=debug

    라는 설정을 해주면 hello.springmvc 아래의 파일은 debug부터 출력한다는 뜻이다.

    즉, debug, info, warn, error를 출력하게 되며 개발 서버에서는 debug 배포를 주로 사용하게 된다.

     

     

    또한 로그 출력 방식은 출력을 콘솔로만 남기지 않고 파일이나 네트워크 등에 로그를 남길 수 있다는 장점이 있다.

    내부 버퍼링, 멀티 쓰레드 등의 성능도 System.out.println보다 좋기 때문에 로그를 잘 사용할 수 있도록 해야한다.

     

     

     

    application.properties에 별도의 설정을 하여 debug부터 출력되게 함.

    '스프링 > 스프링 MVC 패턴' 카테고리의 다른 글

    API 요청 매핑 타입  (0) 2023.02.14
    특정 조건 매핑  (0) 2023.02.14
    스프링 MVC  (0) 2023.02.12
    view resolver  (0) 2023.02.12
    핸들러 어댑터  (0) 2023.02.12
Designed by Tistory.