diff --git a/DigitalData.Core.Exceptions.Middleware/DependencyInjection.cs b/DigitalData.Core.Exceptions.Middleware/DependencyInjection.cs index f6d0424..945f18f 100644 --- a/DigitalData.Core.Exceptions.Middleware/DependencyInjection.cs +++ b/DigitalData.Core.Exceptions.Middleware/DependencyInjection.cs @@ -1,12 +1,18 @@ using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; namespace DigitalData.Core.Exceptions.Middleware; public static class DependencyInjection { + public static IServiceCollection ConfigureGlobalExceptionHandler(this IServiceCollection services, Action options) + { + return services.Configure(options); + } + public static IApplicationBuilder UseGlobalExceptionHandler(this IApplicationBuilder app) { app.UseMiddleware(); return app; } -} +} \ No newline at end of file diff --git a/DigitalData.Core.Exceptions.Middleware/DigitalData.Core.Exceptions.Middleware.csproj b/DigitalData.Core.Exceptions.Middleware/DigitalData.Core.Exceptions.Middleware.csproj index 01a4cb5..add20c3 100644 --- a/DigitalData.Core.Exceptions.Middleware/DigitalData.Core.Exceptions.Middleware.csproj +++ b/DigitalData.Core.Exceptions.Middleware/DigitalData.Core.Exceptions.Middleware.csproj @@ -6,6 +6,10 @@ enable + + + + diff --git a/DigitalData.Core.Exceptions.Middleware/GlobalExceptionHandlerMiddleware.cs b/DigitalData.Core.Exceptions.Middleware/GlobalExceptionHandlerMiddleware.cs index c775865..d52e148 100644 --- a/DigitalData.Core.Exceptions.Middleware/GlobalExceptionHandlerMiddleware.cs +++ b/DigitalData.Core.Exceptions.Middleware/GlobalExceptionHandlerMiddleware.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using System.Net; using System.Text.Json; @@ -13,17 +14,21 @@ using System.Text.Json; public class GlobalExceptionHandlerMiddleware { private readonly RequestDelegate _next; + private readonly ILogger? _logger; + private readonly GlobalExceptionHandlerOptions? _options; + /// /// Initializes a new instance of the class. /// /// The next middleware in the request pipeline. /// The logger instance for logging exceptions. - public GlobalExceptionHandlerMiddleware(RequestDelegate next, ILogger? logger = null) + public GlobalExceptionHandlerMiddleware(RequestDelegate next, ILogger? logger = null, IOptions? options = null) { _next = next; _logger = logger; + _options = options?.Value; } ///