如何在servicestack中记录调试请求和响应

Mys*_*ter 9 logging servicestack

我想记录servicestack webservice的整个请求和响应对.我查看了响应文件管理器,但是公开的流是只读的.

myt*_*thz 12

您是否看过ServiceStack的内置Request Logger插件?它是一个可配置的内存中请求记录器,用于维护最近请求的日志/(错误响应).

如果您想要一个不同的行为,您可以实现并注册您自己的IRequestLogger,它会被调用每个请求.使用以下参数为每个请求调用log方法.

void Log(IRequestContext requestContext, object requestDto, 
         object response, TimeSpan elapsed);
Run Code Online (Sandbox Code Playgroud)

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

var httpReq = requestContext.Get<IHttpRequest>();
var httpRes = requestContext.Get<IHttpResponse>();
Run Code Online (Sandbox Code Playgroud)

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

var originalReq = httpReq.OriginalRequest;
var originalRes = httpReq.OriginalResponse;
Run Code Online (Sandbox Code Playgroud)

过滤响应

否则,内省反应的方法是