我已经使用(在我的AppHost.cs中)实现了所有请求/响应的记录:
this.RequestFilters.Add(serviceLogFilter.LogRequest);
this.ResponseFilters.Add(serviceLogFilter.LogResponse);
在记录请求期间,我从记录表中获取新ID并将其放入IHttpRequest.Items
。
我的问题是:当发生错误时,如果传入数据的验证失败,或者我的业务逻辑抛出异常,是否有一种方法可以自定义返回的错误以包含我的日志引用?最好通过向错误响应添加JSON主体。或者,设置自定义HTTP标头?
我的想法是,如果发生意外情况,我的客户可以给我一个日志参考,我会找到他的请求,并且很容易重现问题。
答案 0 :(得分:0)
请参阅旧this question on different ways to Handle exceptions的New API。
使用IHttpRequest.Items
字典在同一请求中的请求过滤器,服务和响应过滤器之间传递数据。
InMemoryRollingRequestLogger插件的Request Logger实现还显示了另一种能够记录所有请求的方法。