Niveles de Log
Es muy importante tener en cuenta los niveles de log. Estos son los permitidos por el logger:
typescriptCopiar códigoexport enum LevelEnum {
CRIT = 1,
ERROR = 2,
QUERY = 3,
WARN = 4,
INFO = 5,
HTTP = 6,
DEBUG = 7,
}
Explicación de los Niveles de Log
CRIT (1): Nivel crítico. Indica un problema grave que requiere atención inmediata. Este nivel se utiliza para eventos que podrían provocar la caída de la aplicación o la pérdida de datos.
Ejemplo:
logger.log(LevelEnum.CRIT, "Database connection lost")
ERROR (2): Nivel de error. Se usa para eventos que indican un problema que debe solucionarse, pero no necesariamente causa la caída de la aplicación. Estos logs son esenciales para identificar y corregir errores en el código.
Ejemplo:
logger.log(LevelEnum.ERROR, "Failed to process user request")
QUERY (3): Nivel de consulta. Utilizado para registrar las consultas a la base de datos u operaciones similares. Esto es útil para la optimización y el seguimiento del rendimiento de las consultas.
Ejemplo:
logger.log(LevelEnum.QUERY, "SELECT * FROM users WHERE id = 1")
WARN (4): Nivel de advertencia. Indica situaciones que podrían convertirse en errores. Estos logs ayudan a identificar problemas potenciales antes de que se conviertan en errores graves.
Ejemplo:
logger.log(LevelEnum.WARN, "Memory usage is high")
INFO (5): Nivel informativo. Se usa para registrar información general sobre el funcionamiento de la aplicación. Estos logs son útiles para obtener una visión general de la actividad de la aplicación.
Ejemplo:
logger.log(LevelEnum.INFO, "User logged in successfully")
HTTP (6): Nivel HTTP. Específicamente para registrar solicitudes y respuestas HTTP. Este nivel es crucial para el seguimiento de las interacciones del cliente y la depuración de problemas relacionados con la red.
Ejemplo:
logger.log(LevelEnum.HTTP, "GET /api/v1/users 200 OK")
DEBUG (7): Nivel de depuración. Utilizado para información detallada que es útil durante el desarrollo y la depuración. Estos logs proporcionan un nivel profundo de detalles que pueden ayudar a identificar problemas complejos.
Ejemplo:
logger.log(LevelEnum.DEBUG, "Variable x value is 42")
Cómo Funcionan los Niveles de Log
Cada nivel de log tiene una prioridad, con CRIT
siendo el más alto (1) y DEBUG
el más bajo (7). Al configurar el logger, puedes especificar el nivel de detalle que deseas registrar. Por ejemplo, si configuras el nivel de log en WARN
, solo los mensajes de nivel WARN
y superiores (WARN, ERROR, CRIT) se registrarán.
En la configuración del logger, se pueden definir diferentes niveles para distintos destinos (consola, archivo, webhook):
{
"fileLevel": 3, // Registra mensajes de QUERY (3) y superiores en el archivo
"consoleLevel": 3, // Registra mensajes de QUERY (3) y superiores en la consola
"webhookLevel": 3, // Envía mensajes de QUERY (3) y superiores al webhook
"name": "backupService",
"context": "BackupService",
"webhookStrategy": "slack",
"application": "inlaze_task"
}
Configuración de Ejemplo
{
"_id": {
"$oid": "66146fcdf1d88197c8d25771"
},
"webhookUrl": "https://hooks.slack.com/services/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",
"fileLevel": 3,
"consoleLevel": 3,
"webhookLevel": 3,
"name": "backupService",
"context": "BackupService",
"webhookStrategy": "slack",
"application": "inlaze_task"
}
En este ejemplo, los logs de nivel QUERY
(3) y superiores se registrarán en el archivo, consola y se enviarán al webhook configurado. La configuración es específica para el contexto BackupService
y la aplicación inlaze_task
.
Esta flexibilidad permite gestionar eficientemente la cantidad de información registrada, facilitando el monitoreo y la resolución de problemas en la aplicación.
Last updated