Lambda.Core.LogNotificator
1.0.6
dotnet add package Lambda.Core.LogNotificator --version 1.0.6
NuGet\Install-Package Lambda.Core.LogNotificator -Version 1.0.6
<PackageReference Include="Lambda.Core.LogNotificator" Version="1.0.6" />
<PackageVersion Include="Lambda.Core.LogNotificator" Version="1.0.6" />
<PackageReference Include="Lambda.Core.LogNotificator" />
paket add Lambda.Core.LogNotificator --version 1.0.6
#r "nuget: Lambda.Core.LogNotificator, 1.0.6"
#:package Lambda.Core.LogNotificator@1.0.6
#addin nuget:?package=Lambda.Core.LogNotificator&version=1.0.6
#tool nuget:?package=Lambda.Core.LogNotificator&version=1.0.6
Lambda.Core.LogNotificator
Lambda.Core.LogNotificator é um pacote NuGet para facilitar o registro estruturado de logs e notificações em aplicações .NET, com suporte a repositórios de persistência e integração com padrões de correlação de logs (Correlation ID).
📦 Instalação
Via NuGet Package Manager:
Install-Package Lambda.Core.LogNotificator
Via .NET CLI:
dotnet add package Lambda.Core.LogNotificator
✅ Funcionalidades
- Registro de logs estruturados com níveis: Debug, Information, Warning e Error.
- Correlação de logs via Correlation ID.
- Registro de notificações categorizadas: Informações, Alertas e Erros.
- Persistência de logs utilizando
ILogRepositorycom suporte a transações. - Serviço central
NotificationLogServicepara registrar notificações como logs. - Implementação do padrão Unit of Work para controle de transações.
📂 Estrutura de Classes
Entities
- Log: Representa um log estruturado.
- Notification: Representa uma notificação categorizada (Informação, Alerta, Erro).
Interfaces
ILoggerProvider: Interface para abstração de provedores de log.ILogRepository: Interface para persistência de logs.INotificator: Interface para gerenciamento de notificações.
Repositories
LogRepository: Implementação deILogRepositoryutilizandoIUnitOfWorkpara persistência transacional dos logs.
Services
LoggerProvider: Implementação padrão deILoggerProvider, escreve logs no console e suporta Correlation ID.NotificationLogService: Serviço para converter notificações em logs persistentes.Notificator: Implementação padrão deINotificator, gerencia notificações em memória.
🚀 Exemplo de Uso
// Instanciar o Notificator
var notificator = new Notificator();
// Adicionar notificações
notificator.AddInformation("INFO001", "Processo concluído com sucesso.");
notificator.AddWarning("WARN001", "Limite de tentativas quase atingido.");
notificator.AddError("ERR001", "Falha ao processar solicitação.");
// Instanciar o LogRepository com UnitOfWork
var unitOfWork = new UnitOfWork(connection);
var logRepository = new LogRepository(unitOfWork);
// Criar o NotificationLogService
var notificationLogService = new NotificationLogService(notificator, logRepository);
// Registrar notificações como logs
await notificationLogService.RegistrarNotificacoesInformationsAsync();
await notificationLogService.RegistrarNotificacoesWarnings();
await notificationLogService.RegistrarNotificacoesErrors();
🛠️ Dependências
Dapperpara execução de comandos SQL.IUnitOfWorkpara controle transacional.- Banco de dados relacional com tabela
Logscom colunas:Message,MessageTemplate,Level,TimeStamp,Exception,Properties,LogEvent.
📝 Tabela de Logs (SQL)
CREATE TABLE Logs (
Id INT PRIMARY KEY IDENTITY,
Message NVARCHAR(MAX),
MessageTemplate NVARCHAR(MAX),
Level NVARCHAR(50),
TimeStamp DATETIMEOFFSET,
Exception NVARCHAR(MAX),
Properties NVARCHAR(MAX),
LogEvent NVARCHAR(100)
);
🎯 Principais Benefícios
✅ Facilidade para estruturar logs e notificações.
✅ Integração simples com qualquer sistema de persistência.
✅ Padronização de logs com correlação de eventos.
✅ Flexível e extensível via injeção de dependência.
⚖️ Licença
Este projeto é distribuído sob a licença MIT.
🙌 Contribuições
Contribuições são bem-vindas! Sinta-se à vontade para abrir Issues ou enviar Pull Requests.
👤 Autor
Desenvolvido por [Marcelo P. Matos].
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Dapper (>= 2.1.66)
- DataAccessAwsSql.Data.Sql (>= 1.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.