如何在ExceptionLogger中返回自定义响应

本文关键字:返回 自定义 响应 ExceptionLogger | 更新日期: 2023-09-27 18:06:30

在Log方法中没有上下文。

如何返回自定义响应,如:

当我的Log方法被调用时,我想将id传递给当前请求。问题是我如何获得请求的内容实例,传递它的id?

这是导致异常的操作:

   public async Task<IHttpActionResult> GetConfiguredProducts(int number)
    {
        var products = await service.Get(number);
        return Ok(products);
    }

public class GlobalExceptionLogger : ExceptionLogger
    {
        private static int id;
        public override void Log(ExceptionLoggerContext context)
        {
            Interlocked.Increment(ref id);
            loggingService.ErrorException(string.Format("id: {0}", id), context.Exception);
        }
    }

如何在ExceptionLogger中返回自定义响应

如果您正在使用System。基于Web的栈(如果您使用IIS和ASP,可能就是这种情况)。. NET版本<5),您可以使用

在任何地方获得对请求和响应的引用。
HttpContext.Current 

对象。

ExceptionLoggerContext暴露了ExceptionContext,它暴露了Request和RequestContext。这就够了吗?