73 lines
2.8 KiB
Java

package com.banesco.infraestructure.helpers;
/**
* Clase utilitaria para la generación de mensajes de registro (logging).
* Facilita la creación de cadenas formateadas para registrar información de
* solicitudes y respuestas, tanto públicas como privadas, así como mensajes de
* error. Utiliza un formato estandarizado para mejorar la legibilidad y
* facilitar el análisis de los registros del sistema.
*/
public class LoggerHelper {
/**
* Construye una cadena de información para una solicitud pública.
*
* @param requestId El ID de la solicitud.
* @param request El objeto de solicitud.
* @param <T> El tipo del objeto de solicitud.
* @return Una cadena de información formateada.
*/
public <T> String buildInfoRequest(String requestId, T request) {
return String.format("[RQ PUB: %s] [%s]", requestId, JsonHelper.getJsonFromObject(request));
}
/**
* Construye una cadena de información para una respuesta pública.
*
* @param requestId El ID de la solicitud.
* @param response El objeto de respuesta.
* @param <T> El tipo del objeto de respuesta.
* @return Una cadena de información formateada.
*/
public <T> String buildInfoResponse(String requestId, T response) {
return String.format("[RS PUB: %s] [%s]", requestId, JsonHelper.getJsonFromObject(response));
}
/**
* Construye una cadena de información para una solicitud privada.
*
* @param requestId El ID de la solicitud.
* @param name El nombre de la solicitud privada.
* @param request El objeto de solicitud.
* @param <T> El tipo del objeto de solicitud.
* @return Una cadena de información formateada.
*/
public <T> String buildInfoPrivateRequest(String requestId, String name, T request) {
return String.format("[RQ PRV %s: %s] [%s]", name, requestId, JsonHelper.getJsonFromObject(request));
}
/**
* Construye una cadena de información para una respuesta privada.
*
* @param requestId El ID de la solicitud.
* @param name El nombre de la respuesta privada.
* @param response El objeto de respuesta.
* @param <T> El tipo del objeto de respuesta.
* @return Una cadena de información formateada.
*/
public <T> String buildInfoPrivateResponse(String requestId, String name, T response) {
return String.format("[PRV RS %s: %s] [%s]", name, requestId, JsonHelper.getJsonFromObject(response));
}
/**
* Construye una cadena de error.
*
* @param requestId El ID de la solicitud asociada al error.
* @param out El mensaje de error.
* @return Una cadena de error formateada.
*/
public String buildError(String requestId, String out) {
return String.format("[ERROR %s] [%s]", requestId, out);
}
}