Registro para TypeScript: biblioteca Winston

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Winston y para qué sirve?

Winston es una biblioteca popular para logging en TypeScript y JavaScript. Proporciona un sistema flexible de registro de logs con soporte para múltiples transports (salida a consola, archivo, base de datos, HTTP), niveles de logging y formato de mensajes. En proyectos grandes, el logging es crítico para la depuración, monitoreo y auditoría de acciones del usuario o del sistema. Winston permite estructurar los logs, filtrarlos por importancia y guardarlos en un formato fácil de analizar.

Cómo instalar Winston en TypeScript

Para instalarlo, ejecuta el siguiente comando en la terminal:

npm install winston

También se recomienda instalar los tipos para TypeScript:

npm install --save-dev @types/winston

Funciones principales de Winston

  • Niveles de logging: error, warn, info, verbose, debug, silly (personalizables).
  • Transports: Console, File, HTTP, MongoDB, Syslog y otros.
  • Formateo: JSON, texto plano, marcas de tiempo, colores.
  • Asincronía: no bloquea el hilo principal.
  • Perfiles personalizados: creación de niveles y transports propios.

Ejemplo de código en TypeScript

import winston from 'winston';

const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console({ format: winston.format.simple(), }), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), ],});

logger.info('Aplicación iniciada');logger.error('Error de conexión a la base de datos');

Este código crea un logger que escribe todos los mensajes de nivel info y superiores en la consola, los errores en error.log y todos los logs en combined.log.

Cuándo usar Winston

Winston es adecuado para cualquier aplicación de servidor en Node.js (Express, NestJS, Koa), microservicios, utilidades CLI y scripts complejos. Es especialmente útil en entornos de producción donde se requiere almacenamiento centralizado de logs, rotación de archivos e integración con sistemas de monitoreo (ELK, Splunk). Para proyectos simples se puede usar el console.log incorporado, pero Winston ofrece control y escalabilidad.

Recommendations