Registro de Logs para TypeScript: Biblioteca Winston

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Winston e para que serve?

Winston é uma biblioteca popular para logging em TypeScript e JavaScript. Ela fornece um sistema flexível de registro de logs com suporte a múltiplos transports (saída para console, arquivo, banco de dados, HTTP), níveis de logging e formatação de mensagens. Em projetos grandes, o logging é criticamente importante para depuração, monitoramento e auditoria de ações do usuário ou do sistema. Winston permite estruturar logs, filtrá-los por importância e salvá-los em um formato adequado para análise.

Como instalar Winston no TypeScript

Para instalar, execute o comando no terminal:

npm install winston

Também é recomendado instalar os tipos para TypeScript:

npm install --save-dev @types/winston

Principais funcionalidades do Winston

  • Níveis de logging: error, warn, info, verbose, debug, silly (configuráveis).
  • Transports: Console, File, HTTP, MongoDB, Syslog e outros.
  • Formatação: JSON, texto simples, timestamps, cores.
  • Assincronicidade: não bloqueia a thread principal.
  • Perfis personalizados: criação de níveis e transports próprios.

Exemplo de código em 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('Aplicação iniciada');logger.error('Erro de conexão com o banco de dados');

Este código cria um logger que escreve todas as mensagens de nível info e superiores no console, erros no error.log e todos os logs no combined.log.

Quando usar Winston

Winston é adequado para qualquer aplicação servidora em Node.js (Express, NestJS, Koa), microsserviços, utilitários CLI e scripts complexos. É especialmente útil em ambiente de produção, onde é necessário armazenamento centralizado de logs, rotação de arquivos e integração com sistemas de monitoramento (ELK, Splunk). Para projetos simples, pode-se usar o console.log nativo, mas Winston oferece controle e escalabilidade.

Recommendations