1. 로깅
무언가를 기록하는 과정이다. 스프링에서는 로깅 라이브러리가 존재한다. System.out.print같은 경우에는 정말 느리기 때문에 따로 로깅 라이브러리를 사용해야만 한다.
2. 로깅 설정 방법
- SLF4J
- Logback
등등 여러 라이브러리가 있는데 SLF4J 라이브러리의 경우 이 모든 로그를 통합해서 인터페이스로 제공한다.
로그 선언
- 그냥 선언
- 현재 RestController로 설정했는데 이건 return type이 String일 경우 그냥 HTTP Body에 String을 넘겨준다.
- 그냥 Controller같은 경우에는 view 페이지를 찾는다.
- lombok을 사용한 로거 생성
- @Slf4j를 넣으면 자동으로 롬복이 로거를 가져온다.
- log.info() 형태로 log. 으로 작성하면 된다.
결과
3. 다양한 로그 선언
기능
- trace: 디버깅에 유용한 상세한 정보를 로그에 남깁니다. 프로그램 실행에 영향을 주지 않습니다.
- debug: 디버깅 정보를 로그에 남깁니다. 프로그램 실행에 영향을 주지 않습니다.
- info: 정보성 로그를 남깁니다. 프로그램이 실행하는 중요한 이벤트를 알립니다.
- warn: 경고성 로그를 남깁니다. 프로그램이 실행하는 중 오류가 발생하지 않았지만 발생할 가능성이 있습니다.
- error: 오류 정보를 로그에 남깁니다. 프로그램이 실행하는 중 오류가 발생했음을 알립니다.
개발 서버는 debug, 운영서버는 info 레벨을 사용한다.
- 기본은 info이다.
결과
4. 모든 로그 보기
- application.properties를 설정해 주면 된다.
- logging level에서 패키지를 선언해주면 지정 범위를 설정할 수 있다.
주의사항
- 로깅을 사용할 떄는 JAVA 에서 제공하는 + 연산자를 사용하면 안된다.
- format 형식으로 (”로그 메세지{}” , 들어갈 데이터) 형태로 들어가야 한다.
- ( “logger” + 변수 명) 형태로 작성하면 JAVA에서 변수를 다시 String으로 변환하고 메모리에 작성하기 때문에 리소스가 로그가 찍힐 때마다 추가적으로 사용된다.