首页 新闻 会员 周边

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

0
悬赏园豆:30 [已解决问题] 解决于 2023-03-17 17:18

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

if (response.IsValidationError)
{
    return Problem(
        response.ErrorMessage,
        null,
        StatusCodes.Status400BadRequest,
        OrderError.ValidationFailed.Name);
}
dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2023-03-17 16:33
< >
分享
最佳答案
0

通过下面的代码解决了

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);
    };
});
dudu | 高人七级 |园豆:31003 | 2023-03-17 17:18
其他回答(1)
0

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

收获园豆:30
中华鲟3670 | 园豆:847 (小虾三级) | 2023-03-17 17:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册