Пример #1
0
        private void LogExceptionHandled(Exception exception, ProblemDetails problemResponse, Type handledExceptionType)
        {
            var exceptionTypeName = typeof(AggregateNotFoundException) == handledExceptionType
                ? "NotFoundException"
                : handledExceptionType.Name;

            _logger.LogInformation(
                0,
                exception,
                "[{ErrorNumber}] {HandledExceptionType} handled: {ExceptionMessage}",
                problemResponse.ProblemInstanceUri, exceptionTypeName, problemResponse.Detail);
        }
Пример #2
0
        private ProblemDetails MapStatusCode(HttpContext context, int statusCode)
        => !ApiOptions.SuppressMapClientErrors && ApiOptions.ClientErrorMapping.TryGetValue(statusCode, out var errorData)
                ? new ProblemDetails
        {
            HttpStatus         = statusCode,
            ProblemTypeUri     = errorData.Link,
            Title              = errorData.Title,
            Detail             = string.Empty,
            ProblemInstanceUri = ProblemDetails.GetProblemNumber()
        }

                : new StatusCodeProblemDetails(statusCode)
        {
            Detail             = string.Empty,
            ProblemInstanceUri = ProblemDetails.GetProblemNumber()
        };
Пример #3
0
        private ProblemDetails HandleUnhandledException(Exception exception)
        {
            var problemResponse = new ProblemDetails
            {
                HttpStatus         = StatusCodes.Status500InternalServerError,
                Title              = ProblemDetails.DefaultTitle,
                Detail             = "",
                ProblemTypeUri     = _problemDetailsHelper.GetExceptionTypeUriFor <UnhandledException>(),
                ProblemInstanceUri = ProblemDetails.GetProblemNumber()
            };

            if (exception != null)
            {
                _logger.LogError(0, exception, "[{ErrorNumber}] Unhandled exception!", problemResponse.ProblemInstanceUri);
            }

            return(problemResponse);
        }