如何让 ASP.NET Core Web API 在响应 Problem 时自动记录日志

如何让 ASP.NET Core Web API 在响应 Problem 时自动记录日志 时自动记录日志 Problem ASP. Core 如何让 在响应 NET Web API

比如下面在 Action 中返回 Problem ObjectResult 的代码,不想在每个返回 Problem 的地方添加写日志的代码

if (response.IsValidationError)
{
    return Problem(
        response.ErrorMessage,
        null,
        StatusCodes.Status400BadRequest,
        OrderError.ValidationFailed.Name);
}

最佳答案:

通过下面的代码解决了

services.AddProblemDetails(options =>
{
    options.CustomizeProblemDetails = (context) =>
    {
        var logger = context.HttpContext.RequestServices
            .GetRequiredService<ILoggerFactory>()
            .CreateLogger(nameof(options.CustomizeProblemDetails));
        logger.LogError("Response problem details\n{@ProblemDetails}", context.ProblemDetails);
    };
});

你的问题,估计要ChatGPT可以回答。


其他回答:
评论