@ericshantos/logger
v1.0.2
Published
A flexible and extensible TypeScript logger package based on the hexagonal architecture, with support for multiple output adapters, including console and files.
Downloads
9
Readme
Logger.js
Um pacote de logs flexível e extensível em TypeScript, baseado na arquitetura hexagonal, com suporte a múltiplos adaptadores de saída, incluindo console e arquivos.
Funcionalidades
- Múltiplos níveis de log:
verbose,info,warn,error - Nível mínimo de log configurável
- API simples e limpa
- Suporte a TypeScript
- Arquitetura hexagonal para fácil extensibilidade
Instalação
npm install @ericshantos/logger Como Usar
Uso Básico
import { Logger } from '@ericshantos/logger';
const logger = new Logger('info'); // 'info' é o nível padrão
logger.verbose('Mensagem detalhada'); // Não será exibida se o nível for 'info'
logger.info('Mensagem informativa');
logger.warn('Aviso importante');
logger.error('Erro crítico'); Configurando Níveis de Log
Você pode definir o nível mínimo de log ao criar o logger:
const loggerDetalhado = new Logger('verbose'); // Registra todos os níveis
const loggerApenasErros = new Logger('error'); // Registra apenas erros Estendendo o Logger
O pacote segue os princípios da arquitetura hexagonal, facilitando a criação de adaptadores personalizados. Implemente a interface LoggerContract para criar suas próprias soluções de log.
import type { LoggerContract, LogLevel } from '@ericshantos/logger';
class MeuLoggerPersonalizado implements LoggerContract {
// Implemente os métodos necessários
} Referência da API
Classe Logger
Construtor
new Logger(nivel?: LogLevel = 'info') Métodos
verbose(mensagem: string): voidinfo(mensagem: string): voidwarn(mensagem: string): voiderror(mensagem: string): void
Tipos
LogLevel:'verbose' | 'info' | 'warn' | 'error'LoggerContract: Interface que todas as implementações de logger devem seguir
Desenvolvimento
Compilando o Projeto
npm run build Estrutura do Projeto
├── src
│ ├── core
│ │ ├── contracts # Interfaces e tipos principais
│ │ └── logger.service.ts # Implementação principal do logger
│ └── index.ts # Exportações públicas da API Licença
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para mais detalhes.
Contribuições
Contribuições são bem-vindas! Abra uma issue ou envie um pull request.
