스프링에서 Log를 왜 이용하고 어떻게 써야하는가!

박경현·2023년 3월 31일
0

사실 System.out.println 하면 되지 않나라는 생각을 이전까지는 꽤 하고 있었다.

하지만 이번 강의를 듣고 log가 정말 필요하다는 걸 알게 되어서 따로 정리한다!

println이 아닌 log를 왜 써야할까?

모든 로그 부분에 System.out.println을 대신 하게 되면 함수 실행시 무조건 콘솔에 나온다!
이건 엄청난 메모리 이슈와 시간 저하를 일으킬 수 있는 심각한 부분이다!

그래서 운영별로, 개발별로 각각 맞게 콘솔에 정보 나오게 해주는 로그를 사용해야한다!!

application.properties에서 로깅 단계 설정도 가능!

차고로 단계는 trace, debug, info, warning, error 가 있다!

기본 default는 info로 되어있다!
logging.level.hello.springmvc=info

이건 개발용 일주로 설정 해둔다!
logging.level.hello.springmvc=debug

만약 trace로 로그를 다 바꾸면 println한거처럼 로그 부분들 다 콘솔에 출력됨!!!

@Slf4j를 이용해서 로그를 콘솔에 나타내보자!

@Slf4j는 인터페이스이다!

private final Logger log =LoggerFactory.getLogger(getClass());

@RequestMapping("/log-test")
public String logTest(){
	String name = "spring";
    // 로그 레벨 선택
        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); // 에러 확인!
    
}

log.info에서는 '+' 사용금지!!

자바 언어는 + 인 경우는 실제 계산을 안해도 미리 문자열로 붙여버림!! -> 메모리와 cpu 낭비!
그래서 {}를 사용해야한다!! -> 이건 실제 연산때만 파라미터로 인식해서 출력해줌!

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글