Logear Mensajes In/OUT

Para poder ver los mensajes IN/OUT (entrada/salida) que llegan y son enviados desde el servicio Rest, en el fichero de log de la apliacion, tenemos que editar el fichero web.xml añadiendo:

     <!-- Log de Entrada -->
     <context-param>
         <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
         <param-value>es.um.atica.jersey.api.container.filter.LoggingFilter</param-value>
     </context-param>
 
     <!-- Log de Salida -->
     <context-param>
         <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
         <param-value>es.um.atica.jersey.api.container.filter.LoggingFilter</param-value>
     </context-param>

Esta configuración enviará el log al fichero de log general de la aplicación.

Ejemplo de mensaje de entrada (petición entrante):

// Mensaje de entrada
18 jun 2018 11:36:57,050  INFO LoggingFilter:136 - Usuario: ANONIMO-1529314617048 - 26 * Server in-bound request
26 > POST https://push.um.es:443/push/rest/dispositivo/registrar
26 > Proxy-agent: Oracle-Traffic-Director/11.1.1.9
26 > ECID-Context: 1.ncl8t0u2000000000;kXhgv0
26 > Surrogate-capability: otd="Surrogate/1.0"
26 > Content-type: application/json; charset=UTF-8
26 > Content-length: 444
26 > Host: push.um.es
26 > Accept-encoding: gzip
26 > User-agent: okhttp/3.8.0
26 > Client-ip: 31.4.203.177
26 > Proxy-cipher: TLS_RSA_WITH_AES_128_GCM_SHA256
26 > Proxy-keysize: 128
26 > Proxy-secret-keysize: 128
26 > Proxy-ssl-id: 3gtqTT0HmM/zenge4ThfjmBdD2cT+8mHorPFQJmzIs0=
26 > Proxy-issuer-dn: no certificate
26 > Proxy-user-dn: no certificate
26 > Proxy-ssl: True
26 > Proxy-jroute: DygRHYegCmoKVqKC
26 > Via: 1.1 net-cyumgrp
26 > Connection: Keep-Alive
26 > X-Forwarded-For: 31.4.203.177
26 > Proxy-Client-IP: 155.54.216.99
26 > X-WebLogic-KeepAliveSecs: 30
26 > X-WebLogic-Force-JVMID: -1030290984
26 > 
{"app_api_key":"CS4HYgTSIwp8jkhi1sQjYn6KYO8k0icHxC1pnhJZ","app_clave":"AccesoDurm","dispositivo_modelo":"SM-A520F","dispositivo_nombre":"dpi","plataforma":"GCM","dispositivo_token":"fdlqQou9kT0:APA91bH9rGo-7RmaAmGjk6KO_mRWhuHXWStg_YjHn-ST96fDbDplYSlLFxDapTGIcbNvKh3ZFSRKYLdiu1z1EHFsCxkeA53A6TH4WrKlnbELbGuVL-RCcP_z6u7pHCutWv7Lwstf4Cgs","dispositivo_uid":"356650098075205","app_usuario":"49598074","app_version":"2.0","dispositivo_version":"26"}

Ejemplo de mensaje de salida (respuesta a la petición):

//Salida
18 jun 2018 11:37:02,431  INFO LoggingFilter:202 - Usuario: ANONIMO-1529314617048 - 26 * Server out-bound response
26 < 200
26 < Content-Type: application/json
26 < 
{"dispositivo_push_id":494,"dispositivo_sn_uuid":"538f5665-15c5-3f80-887e-c6290a34b826"}

El número que aparece en 26 * Server in-bound request y en 26 * Server out-bound response, indica el ID de la petición. Si la petición es la 26 (26 * Server in-bound request), tengo que buscar la respuesta a esa petición (26 * Server out-bound response).

Estos mensajes, al ser de nivel info (nivel de Log4J), se muestran para todos los entornos.

Si se quieren ocultar, hay que añadir la siguiente configuración en el fichero log4j.xml. Añadiendo la entrada:

	<logger name="es.um.atica.jersey.api.container.filter.LoggingFilter">
		<level value="WARN"/>
	</logger>

Solo LOG de Entrada

Para poder ver SOLO los mensajes IN (entrada) que llegan y son enviados desde el servicio Rest, tenemos que editar el fichero web.xml añadiendo:

     <!-- Log de Entrada -->
     <context-param>
         <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
         <param-value>es.um.atica.jersey.api.container.filter.LoggingFilter</param-value>
     </context-param>

Solo LOG de Salida

Para poder ver SOLO los mensajes OUT (salida) que llegan y son enviados desde el servicio Rest, tenemos que editar el fichero web.xml añadiendo:

     <!-- Log de Salida -->
     <context-param>
         <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
         <param-value>es.um.atica.jersey.api.container.filter.LoggingFilter</param-value>
     </context-param>

Para el cliente la configuración tiene que ser de la siguiente manera:

final ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put( JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE );
final Client client = Client.create( clientConfig );
client.addFilter( new es.um.atica.jersey.api.client.filter.LoggingFilter() );

JUAN MIGUEL BERNAL GONZALEZ 18/06/2018 11:57

  • fdw2.0/fundeweb2.0/gt/rest/log_mensajes.txt
  • Última modificación: 19/01/2021 18:07
  • por JUAN MIGUEL BERNAL GONZALEZ