当发生错误时,让Azure Insights日志请求条目方法(如果不是所有方法)的有效负载的方法



因此,每当在多个API中抛出错误时,我一直在试图找出记录有效负载的方法。但问题是,我正在处理大量的端点,手动记录每个端点并编写一个try-catch充其量也只是噩梦。

谢谢。

使用中间件在请求到达控制器/操作API之前拦截请求,全局尝试{//AI日志请求信息}catch{//人工智能日志错误}

以.NET 4.5 Owin中间件为例:

public class LogGlobalErrorMiddleware : OwinMiddleware
{
private readonly OwinMiddleware _Next;
private readonly ILog _logger;

/// <summary>
/// Ctror
/// </summary>
/// <param name="next"></param> 
/// <param name="healthCheck"></param>
public LogGlobalErrorMiddleware(OwinMiddleware next, ILog logger) : base(next)
{
this._Next = next;
this._logger = logger;
}
public async override Task Invoke(IOwinContext context)
{
await LogGlobalError(context);
}
/// <summary>
/// Middleware logic to log global errors in our microservice
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
private async Task LogGlobalError(IOwinContext context)
{
try
{
//Moving through pipeline
await Next.Invoke(context);
}
catch (Exception ex)
{
_logger.Error(ex, "An unhandled exception happened! ");
}
}

}

相关内容

最新更新