Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

En ciertas ocasiones, al desarrollar una nueva comunicación entre APIs, es útil poder hacer logging de las peticiones y respuestas que se realizan desde un cliente REST.

En esta página se enumeran algunas alternativas para pintar esta información en el log de nuestra aplicación en Spring-Boot.


Info

Esta página es la equivalente en Spring a la WiKi Logear Mensajes In/OUT en FundeWeb.


Guía detallada

A continuación se detallan las distintas configuraciones que permiten realizar el logging de peticiones y respuestas en clientes REST.

1.Logging básico con RestTemplate

Es muy fácil de configurar pero proporciona poca información:

  • No aparecen las cabeceras
  • No aparece el body de la respuesta.


Configuración: 

Añadir en el fichero application.properties:

Bloque de código
##Configuración RestTemplate para logging básico de request y response en clientes

Guía detallada

1.Logging básico con RestTemplate

...

logging.level.org.springframework.web.client.RestTemplate=DEBUG


Cliente con RestTemplate:

Bloque de código
languagejava
	final RestTemplate plantilla = new RestTemplate();
	final HttpHeaders headers = new HttpHeaders();
	headers.set( "HeaderCabecera-test", "valueValor de test" );
	headers.set( "OtherCabecera-Headertest2", "othervalueValor de test 2" );
	final HttpEntity<String> entity = new HttpEntity<>( "body movin'Body de test", headers );

	final String url = "https://micampusdesafundewebjsshowcasedesa.um.es/consultaexpedientes/restapi/v1.0/privatepublic/test/CS";

	final ResponseEntity<String> response = plantilla.exchange( url, HttpMethod.GET, entity, String.class );


Ejemplo de log de petición:

Bloque de código
languagexml
13-05-2021 13:25:44.165 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate                     : HTTP GET https://micampusdesafundewebjsshowcasedesa.um.es/consultaexpedientes/restapi/v1.0/privatepublic/test/CS
13-05-2021 13:25:44.166 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate                     : Accept=[text/plain, application/json, application/*+json, */*]
13-05-2021 13:25:44.166 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate                     : Writing [body movin'Body de test] with org.springframework.http.converter.StringHttpMessageConverter
13-05-2021 13:25:44.197 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate                     : Response 200 OK
13-05-2021 13:25:44.197 DEBUG 12864 --- [nio-8080-exec-1] o.s.w.c.RestTemplate                     : Reading to [java.lang.String] as "application/json"

...

2.Logging completo con Apache HttpComponents.

Bloque de código
languagexml
	<dependency>
	    <groupId>org.apache.httpcomponents</groupId>
	    <artifactId>httpclient</artifactId>
	</dependency>

...