@krakedev_clearminds/kafka-logger-michimoney
v1.0.1
Published
## Descripción
Downloads
1
Readme
Kafka Logger
Descripción
Esta es una librería interna diseñada para enviar logs desde APIs a Kafka utilizando Winston como logger. La librería permite centralizar la gestión de logs y asegura que todos los logs se envíen a un único tópico en Kafka.
Installación
Para instalar la librería, utiliza npm:
npm i @krakedev_clearminds/kafka-logger-michimoney
Uso
Importación
Puedes importar el KafkaLogger de la siguiente manera:
import { KafkaLogger } from '@krakedev_clearminds/kafka-logger-michimoney';
Configuración
Para utilizar el KafkaLogger, primero necesitas crear una instancia del logger, proporcionando la lista de brokers de Kafka y el tópico en el que se enviarán los logs.
const kafkaLogger = new KafkaLogger(['broker1:9092', 'broker2:9092'], 'tu-topico');
Conexión
Antes de enviar logs, es necesario conectar el productor:
await kafkaLogger.connect();
Enviar Logs
Hay dos métodos principales para enviar logs:
logMessage: Para enviar mensajes simples.
await kafkaLogger.logMessage('info', 'Este es un mensaje de log');
logCustomMessage: Para enviar logs más detallados con información personalizada.
javascript
Copiar código
const customLog = {
ip: '192.168.1.1',
appUser: 'usuario123',
apiName: 'miApi',
// ...otros campos personalizados
};
await kafkaLogger.logCustomMessage(customLog);
Estructura de CustomLog
El objeto CustomLog puede contener los siguientes campos opcionales:
ip: Dirección IP del cliente.
appUser: Identificación del usuario de la aplicación.
channel: Canal a través del cual se accede (e.g., web, mobile).
consumer: El consumidor de la API.
apiName: Nombre de la API.
microserviceName: Nombre del microservicio.
methodName: Nombre del método ejecutado.
layer: Capa del servicio.
parentId: Identificador del proceso padre.
referenceId: Identificador de referencia.
dateTimeTransacctionStart: Hora de inicio de la transacción.
dateTimeTransacctionFinish: Hora de finalización de la transacción.
executionTime: Tiempo de ejecución de la operación.
country: País desde el cual se realiza la llamada.
city: Ciudad desde la cual se realiza la llamada.
Ejemplo Completo
Aquí tienes un ejemplo completo de cómo usar la librería:
import { KafkaLogger } from '@krakedev_clearminds/kafka-logger-michimoney;
const kafkaLogger = new KafkaLogger(['broker1:9092'], 'mi-topico');
async function main() {
await kafkaLogger.connect();
await kafkaLogger.logMessage('info', 'Iniciando el servicio');
const customLog = {
ip: '192.168.1.1',
appUser: 'usuario123',
apiName: 'miApi',
// ...otros campos
};
await kafkaLogger.logCustomMessage(customLog);
}
main().catch(console.error);
Contribuciones
Contributions are always welcome!
See contributing.md
for ways to get started.
Please adhere to this project's code of conduct
.