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