[SPRING] Spring 애플리케이션에서 컨테이너 시작시 편안한 엔드 포인트 기록
SPRINGSpring 애플리케이션에서 컨테이너 시작시 편안한 엔드 포인트 기록
Controller 클래스의 @RequestMapping 주석을 통해 편안한 엔드 포인트를 노출시키는 Spring 응용 프로그램이 있습니다.
서버 시작시 모든 응용 프로그램 컨트롤러의 모든 끝점을 콘솔에 로그인하고 싶습니다.
로깅에 Tomcat 서버와 log4j를 사용합니다.
감사.
해결법
-
==============================
1.스프링 부트를 사용하는 사람들 :
스프링 부트를 사용하는 사람들 :
최신 스프링 부트 릴리즈 (v2.1부터)에서는 매핑 기본 로그 수준을 변경했습니다 (여기의 릴리스 노트에 지정된대로).
application.properties 파일에 다음 특성 중 하나를 추가하십시오.
샘플 콘솔 출력 :
2018-12-12 11:16:51.793 TRACE 11868 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping c.n.c.MyController: {POST /users}: addUser(User) {DELETE /users}: deleteUser(User) {PUT /users}: updateUser(User) {GET /users/{id}}: getUserById(String) {GET /users}: getUsers() {GET /users_static}: getUsersStaticList() 2018-12-12 11:16:51.795 TRACE 11868 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping o.s.b.a.w.s.e.BasicErrorController: { /error}: error(HttpServletRequest) { /error, produces [text/html]}: errorHtml(HttpServletRequest,HttpServletResponse)
-
==============================
2.log4J에서에 대한 정보 로그 레벨을 추가하십시오. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping 클래스.
log4J에서에 대한 정보 로그 레벨을 추가하십시오. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping 클래스.
INFO 레벨로 :
log4j.category.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=INFO
이런 종류의 정보가 있어야합니다 (줄이 잘립니다).
2016-11-15 23:34:30.040 INFO 10156 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/{id}],methods=[GET],produces=[application/json]}" o 2016-11-15 23:34:30.040 INFO 10156 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/{id}],methods=[DELETE],produces=[application/json]} 2016-11-15 23:34:30.040 INFO 10156 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts],methods=[POST],consumes=[application/json],produce 2016-11-15 23:34:30.040 INFO 10156 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/{id}],methods=[PUT],consumes=[application/json],pro 2016-11-15 23:34:30.040 INFO 10156 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts],methods=[GET],produces=[application/json]}" onto p 2016-11-15 23:34:30.040 INFO 10156 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/search],methods=[GET],params=[group-id],produces=[a
최신 정보
Spring MVC 5.1 / Spring Boot 2부터 로깅 전략이 변경되었습니다. 이제 INFO 수준으로 기록되는 정보는 거의 없으며 DEBUG 수준은 자세한 정보를 제공하지만 자세한 내용은 제공하지 않습니다. TRACE 레벨 만 자세한 정보를 제공합니다.
변경 내역은 다음과 같습니다 (강조는 내 것입니다).
따라서 모든 매핑을 나열하도록 로깅 구성을 다음과 같이 변경하십시오.
Log4J 속성 방법 :
log4j.category.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=TRACE
로그 백 방법 :
<logger level="TRACE" name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
-
==============================
3.Spring Boot의 이전 답변에 추가하기 위해 Actuator는 무엇보다도 / mappings에서 액세스 할 수있는 매핑이라는 전용 엔드 포인트를 노출하고 있습니다.
Spring Boot의 이전 답변에 추가하기 위해 Actuator는 무엇보다도 / mappings에서 액세스 할 수있는 매핑이라는 전용 엔드 포인트를 노출하고 있습니다.
from https://stackoverflow.com/questions/40621044/log-restful-endpoints-on-container-startup-in-a-spring-application by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 각도 5를 통해 파일 객체를 Spring Rest 컨트롤러로 보내기 (0) | 2019.08.13 |
---|---|
[SPRING] Struts2의 모든 뷰에 객체를 어떻게 노출시킬 수 있습니까? (0) | 2019.08.13 |
[SPRING] CSV에서 mySQL 데이터베이스로 데이터로드 Java + hibernate + spring (0) | 2019.08.13 |
[SPRING] 상수 풀에서 잘못된 바이트 태그 : 19 오류 메시지 (0) | 2019.08.13 |
[SPRING] Spring Service에서 AJAX GET을 사용하여 파일 다운로드 (0) | 2019.08.13 |