Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Squire.Core.Middlewares
- {
- public class GlobalErrorHandlerMiddleware
- {
- private readonly RequestDelegate _next;
- private readonly ILogger _logger;
- private readonly bool _showException;
- public GlobalErrorHandlerMiddleware(RequestDelegate next, ILogger logger, bool showException = false)
- {
- _next = next;
- _logger = logger;
- _showException = showException;
- }
- public async Task Invoke(HttpContext context)
- {
- try
- {
- await _next(context);
- }
- catch (Exception ex)
- {
- _logger.Error(ex, "Unhandled exception");
- context.Response.StatusCode = StatusCodes.Status500InternalServerError;
- if (_showException)
- await context.Response.WriteAsync(ex.ToString());
- }
- }
- }
- public static class GlobalErrorHandlerMiddlewareExtensions
- {
- public static IApplicationBuilder UseGlobalErrorHandler(this IApplicationBuilder builder, bool showException = false)
- {
- return builder.UseMiddleware<GlobalErrorHandlerMiddleware>(showException);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement