@growth-digital-marketing/logger-package
v1.0.12
Published
Logger package to automatically integrate Winston logging in NestJS applications
Downloads
920
Keywords
Readme
GDM Logger Package
O gdm-logger-package
é um pacote projetado para integrar automaticamente o Winston Logger em projetos desenvolvidos com NestJS. Ele configura um sistema centralizado de logging, permitindo o envio periódico de logs para um endpoint específico, que se comunica com uma aplicação de monitoramento e registro. Essa integração facilita a coleta de métricas e o acompanhamento detalhado dos logs, oferecendo informações precisas e essenciais sobre o funcionamento da aplicação.
Ao utilizar o gdm-logger-package
, sua aplicação estará preparada para garantir a integridade do processo de monitoramento da GDM, evitando interrupções e assegurando que os registros sejam monitorados com a máxima eficiência.
Sumário
- Instalação
- Uso
- Serviços e Módulos Disponíveis
- Configurações Adicionais
- Exemplo de Uso
- Desenvolvimento
- Licença
Instalação
Para instalar o pacote, basta usar o comando abaixo:
npm install @growth-digital-marketing/logger-package
Durante a instalação, o pacote verifica se o projeto é um aplicativo NestJS. Se for, ele instalará automaticamente as dependências necessárias para integração com Winston.
Uso
Após a instalação, o pacote estará pronto para uso. Os serviços LoggerService e LogTransportService estão disponíveis para injeção nos seus módulos e serviços NestJS.
Exemplo de uso do LoggerService
Para registrar logs em diferentes níveis, injete o LoggerService
no seu serviço ou controlador:
import { Injectable } from '@nestjs/common';
import { LoggerService } from 'my-nest-logger-package';
@Injectable()
export class AppService {
constructor(private readonly loggerService: LoggerService) {}
someMethod() {
this.loggerService.log('Este é um log de informação.');
this.loggerService.warn('Este é um aviso.');
this.loggerService.error('Este é um erro.');
}
}
Serviços e Módulos Disponíveis
LoggerModule
O LoggerModule
é o módulo principal do pacote. Ele provê o LoggerService
e o LogTransportService
, disponíveis para serem usados em outros módulos.
LoggerService
O LoggerService
encapsula o Winston Logger, permitindo registrar logs com diferentes níveis de severidade (log
, warn
, error
).
Métodos disponíveis:
log(message: string)
: Registra uma mensagem de informação.warn(message: string)
: Registra uma mensagem de aviso.error(message: string)
: Registra uma mensagem de erro.
LogTransportService
O LogTransportService
é responsável por monitorar o arquivo de log e enviar novas entradas para o endpoint configurado. Ele é executado automaticamente a cada 60 segundos e pode ser customizado para atender a diferentes requisitos de envio de logs.
Configurações Adicionais
O pacote permite outras configurações opcionais que podem ser feitas no arquivo logger-config.ts
localizado no diretório config
do pacote.
Exemplo de configuração:
import { createLogger, transports, format, Logger } from 'winston';
export const logger: Logger = createLogger({
level: 'debug', // Nível de logging ajustável
format: format.combine(
format.timestamp(),
format.json()
),
transports: [
new transports.Console(),
new transports.File({ filename: 'logs/app.log' }) // Diretório dos logs
],
});
Exemplo de Uso
Abaixo está um exemplo de uso completo, incluindo o registro de logs e o envio ao endpoint:
import { Injectable } from '@nestjs/common';
import { LoggerService } from 'my-nest-logger-package';
@Injectable()
export class AppService {
constructor(private readonly loggerService: LoggerService) {}
executeTask() {
// Registra uma mensagem de informação
this.loggerService.log('Iniciando a tarefa.');
try {
// Simulação de lógica de negócio
// ...
this.loggerService.log('Tarefa concluída com sucesso.');
} catch (error) {
// Registra um erro
this.loggerService.error('Erro ao executar a tarefa: ' + error.message);
}
}
Desenvolvimento
Esta aplicação foi projetada e implementada pelo time técnico da GDM, utilizando as melhores práticas de desenvolvimento e uma arquitetura modular para garantir escalabilidade, segurança e facilidade de manutenção.
Licença
Este projeto está licenciado sob a MIT License. Sinta-se livre para usá-lo conforme os termos da licença.