DMS.ErrorHandler 1.0.0

dotnet add package DMS.ErrorHandler --version 1.0.0
                    
NuGet\Install-Package DMS.ErrorHandler -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DMS.ErrorHandler" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DMS.ErrorHandler" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="DMS.ErrorHandler" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DMS.ErrorHandler --version 1.0.0
                    
#r "nuget: DMS.ErrorHandler, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=DMS.ErrorHandler&version=1.0.0
                    
Install DMS.ErrorHandler as a Cake Addin
#tool nuget:?package=DMS.ErrorHandler&version=1.0.0
                    
Install DMS.ErrorHandler as a Cake Tool

DMS.ErrorHandler

Autor: Fredy Fuentes Fecha de Creación: 2025-03-20

📜 Descripción

Biblioteca para manejo centralizado de errores en aplicaciones .NET. Permite registrar excepciones en un archivo de log, capturar errores no controlados con middleware y devolver respuestas JSON estructuradas. Ideal para APIs REST y aplicaciones ASP.NET Core.

📝 Características Principales

  • Registro de errores: Guarda excepciones con detalles como clase, método, línea y mensaje.
  • Middleware integrado: Captura errores globales y devuelve respuestas JSON amigables.
  • Gestión de logs: Lectura y ordenamiento de entradas por fecha.
  • Configuración flexible: Tamaño máximo de archivo, rutas personalizadas y opción de guardar en disco.

📖 Ejemplos de Uso

📖 Registrar el manejador de errores en el contenedor de dependencias

using DMS.ErrorHandler.Extensions;

builder.Services.AddDMSErrorHandler(options =>
{
	options.LogFilePath = "error.log";
	options.MaxLogFileSize = 10 * 1024 * 1024; // 10 MB
	options.SaveToFile = true;
});

📖 Agrega el middleware de manejo de errores a la canalización

app.UseDMSErrorHandler();

📖 Registrar Errores Manualmente

using DMS.ErrorHandler.Logging;

var logger = serviceProvider.GetRequiredService<IErrorLogger>();

try	{
	// Código que puede lanzar una excepción
}
catch (Exception ex)
{
	var logEntry = logger.LogError(ex);
	Console.WriteLine(logEntry.ToString());
}

📖 Leer y Ordenar el Archivo de Log

var logger = serviceProvider.GetRequiredService<IErrorLogger>();
var logEntries = logger.ReadLogFileOrdered(descending: true);

foreach (var entry in logEntries)
{
    Console.WriteLine(entry.ToString());
}

📖 Respuesta JSON en Caso de Errores no controlados

{
  "IsSuccess": false,
  "Message": "Se ha producido un error.",
  "Error": {
    "Date": "2025-03-19 12:34:56",
    "Class": "MyController",
    "Method": "Get",
    "Line": "42 (StackTrace - line 42)",
    "Exception": "Error de operación no válida."
  }
}

🚀 Instalación

Puedes instalar el paquete desde NuGet con:

dotnet add package DMS.ErrorHandler

🛠 Compatibilidad

  • .NET 7.0+
  • .NET 8.0+
  • .NET 9.0+

⚠️ Mejores Prácticas

  • Middleware: Colócalo al inicio de la aplicación para capturar todos los errores.
  • Tamaño de logs: Configura MaxLogFileSize para evitar archivos muy grandes.`
  • Logs sensibles: No guardes información sensible en los logs.
  • Entornos: En producción, evita exponer detalles sencibles en respuestas JSON.

📄 Documentación Completa

Clase Descripción
IErrorLogger Define métodos para registrar errores y leer logs.
ErrorLogger Implementación de IErrorLogger con métodos de log.
DMSErrorHandlerOptions Opciones de configuración para el manejador de errores.
DMSErrorHandlerMiddleware Middleware para capturar errores no controlados y devolver respuestas json.
ErrorLogEntry Modelo de datos para entradas de log de errores con fecha, clase, método y error.

📄 Licencia

Este proyecto se encuentra bajo la licencia Apache2-0.


📌 Cómo Contribuir

Si deseas contribuir, revisa el archivo CONTRIBUTING.md para más detalles.


📜 Changelog

Para ver los cambios en cada versión, consulta el archivo CHANGELOG.md.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 94 3/27/2025