我怎么登录请求和响应在servicestack调试(how do I log requests an

2019-07-30 13:33发布

我想记录整个请求&响应对一个servicestack web服务。 我已经看过了响应文件管理器,但暴露了流是只读的。

Answer 1:

你见过ServiceStack内置的请求记录器插件? 这是一个可配置的内存请求记录器维护最近请求的日志/(错误响应)。

如果您想不同的行为,你可以实现并注册自己的IRequestLogger ,它被调用为每个请求。 它的日志方法被调用为以下参数每个请求。

void Log(IRequestContext requestContext, object requestDto, 
         object response, TimeSpan elapsed);

您还可以检索与请求上下文的IHttpRequest / IHttpRespnse对:

var httpReq = requestContext.Get<IHttpRequest>();
var httpRes = requestContext.Get<IHttpResponse>();

从这里你可以得到原始ASP.NET/HttpListener请求/响应类型的

var originalReq = httpReq.OriginalRequest;
var originalRes = httpReq.OriginalResponse;

过滤响应

否则内省的响应方式是要么

  • 的响应滤波器或响应滤波器属性 ; 要么
  • 重写OnAfterExecute()对从静止/ ServiceBase继承自己的基类


文章来源: how do I log requests and responses for debugging in servicestack