C# Web API,响应返回给客户端后的日志请求

本文关键字:客户端 日志 请求 返回 Web API 响应 | 更新日期: 2023-09-27 18:31:26

我最近为我的应用程序创建了一个日志记录解决方案,我的 Web 服务器通过 HTTP 将所有请求/响应数据发送到日志服务器。我已经使用委派处理程序完成了此操作

http://www.asp.net/web-api/overview/advanced/http-message-handlers

这工作得很好,但我很好奇是否有一种方法可以以一种不需要我在将消息发送回客户端之前记录消息的方式执行此操作。记录消息不会为最终用户增加任何价值,因此我希望他们不必等待日志记录逻辑完成,然后再取回他们的数据。

我想我正在寻找的是某种钩子,它在消息已经返回给客户端之后调用,但在线程消失之前,并且我仍然可以访问请求和响应。

我要求太多了吗?

谢谢!

C# Web API,响应返回给客户端后的日志请求

您可以创建一个单独的线程来执行日志记录,并将响应返回到客户端浏览器。

例如,如果使用 Web API 2:

public IHttpActionResult Get(int id)
{
  //create response_data
  new System.Threading.Tasks.Task(() =>
  {
    //do the logging
  }).Start();
  return Content(HttpStatusCode.Accepted, response_data);
}