스프링강의

로깅 설정

lby132 2022. 1. 13. 22:40

로그 종류로는 trace, info, debug, wran, error 가 있다

 

private Logger log = LoggerFactory.getLogger(getClass() 아니면 해당 클래스명.class를 넣어준다.);

 

로그를 찍을수 있게 만들어서

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에 문자열과 변수를 연결할때 + 아닌 , 를 쓸때 ={}이 중괄호를 써야 값이 들어간다.

안쓰면 값이 안들어가서 error log= 콘솔에 이것만 찍힘)

 

그런데 롬복에 있는 @Sl4j라는 어노테이션을 클래스 레벨에 넣어주면 

private Logger log = LoggerFactory.getLogger(getClass() 아니면 해당 클래스명.class를 넣어준다.);

이 문장은 사라져도 된다.

@Sl4j만 써주면 바로 log.info()등 모든 로그로 접근 가능하다.

 

로그 설정 방법으로는 application.properties 파일에

 

#전체 로그 레벨 설정(기본 info)
logging.level.root=info

#hello.springmvc 패키지에 그 하위 로그 레벨 설정
Logging.level.hello.springmvc=debug

 

이렇게 설정해주면 된다.

원하는 로그를 레벨에 설정을 해주면 그에 맞는 로그 들이 콘솔창에 뜬다.

보통 debug는 개발에 사용되고 info는 운영에 사용된다.

gradle에는 설정한것 없다.

 

마지막으로 로그를 출력할때에는 log.trace("trace log={}", name); 이런식으로 변수와 문자열 연결할때 쉼표를 써야한다.

log.trace("trace log={}"+ name); 이렇게 + 를 쓰면 자바에서는 연산을먼저 하기 때문에 쓸때없는 연산이 일어나면서 메모리를 낭비하게 된다. 실제로 trace를 출력하지 않아도 + 기호때문에 자바에서는 연산을 하게 된다. 그렇기 때문에 항상 쉼표를 쓰자.

로그 사용 장점은 쓰레드정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고 출력 모양을 조정할 수 있다.

파일이나 네트워크 등, 로그를 별도의 위치에 남길 수 있다. 특히 핲일로 남길때는 일별, 특정 용량에 따라 로그를 분할 하는것도 가능하다.

성능도 System.out보다 좋다.

 

로그인터페이스에는 

SL4J와 Logback이 있다.

'스프링강의' 카테고리의 다른 글

의존관계 주입  (0) 2022.05.28
프레임워크와 라이브러리의 차이  (0) 2022.05.10
WEB-INF  (0) 2021.12.28
웹서버와 웹어플리케이션 서버  (0) 2021.11.23
서블릿 컨테이너  (0) 2021.11.23