누구나 파일에서 HttpRequest 및 HttpResponse를 기록하는 기술을 설명 할 수 있습니까?파일에서 HttpRequest 및 HttpResponse를 기록하는 방법은 무엇입니까?
우리는 Spring MVC/Spring Rest를 사용하고 있습니다.
우리가 원하는 것은 처리되기 전에 요청을 가로 채어 기록하는 것입니다. 응답을 전송하기 전에 응답을 가로 채서 로그를 남기고 기록하십시오.
미리 감사드립니다.
누구나 파일에서 HttpRequest 및 HttpResponse를 기록하는 기술을 설명 할 수 있습니까?파일에서 HttpRequest 및 HttpResponse를 기록하는 방법은 무엇입니까?
우리는 Spring MVC/Spring Rest를 사용하고 있습니다.
우리가 원하는 것은 처리되기 전에 요청을 가로 채어 기록하는 것입니다. 응답을 전송하기 전에 응답을 가로 채서 로그를 남기고 기록하십시오.
미리 감사드립니다.
요청에 대한 로깅의 경우 Spring은 AbstractRequestLoggingFilter
클래스 (실제로는 서브 클래스 중 하나)를가집니다. 들어오는 요청 (처리 전후)을 기록하는 데 사용할 수 있습니다.
구성에 따라 페이로드, 클라이언트 정보 및 전체 URL (erquest 매개 변수 포함)이 포함될 수 있습니다. 이 세 가지 모두 기본적으로 비활성화되어 있지만 구성을 통해 활성화 할 수 있습니다 (자세한 내용은 javadoc을 참조하십시오).
<filter>
<filter-name>requestLoggingFilter</filter-name>
<filter-class>org.springframework.web.filter.CommonsRequestLoggingFilter</filter-class>
<init-param>
<param-name>includeClientInfo</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>includePayload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>includeQueryString</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>requestLoggingFilter</filter-name>
<servlet-name>dispatcherServlet</servlet-name>
</filter-mapping>
필터는 이제 Commons Logging logger를 사용하여 모든 것을 로그 파일에 기록합니다.
허용되는 답변은 이미 정확하고 주석 기반 구성을 추가합니다. 다음 Bean을 설정에 추가하십시오.
@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
loggingFilter.setIncludeClientInfo(true);
loggingFilter.setIncludeQueryString(true);
loggingFilter.setIncludePayload(true);
return loggingFilter;
}
요청을 로깅을 위해 당신은 ['AbstractRequestLoggingFilter']의 서브 클래스 중 하나 (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/를 추가 할 수 있습니다 filter/AbstractRequestLoggingFilter.html)을 필터 체인에 추가하십시오. –
고마워요. –
@M. Deinum : 대답을 대답으로 게시 하시겠습니까? – Ralph