C#System.Net跟踪日志 - 只追踪一种方法而忽略其他方法?

时间:2011-08-10 02:52:20

标签: c# httpwebrequest tracing system.diagnostics system.net

我正在使用如下所述的System.Net跟踪:

http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html

但是它跟踪了使用HttpWebRequest发出的每个请求。跟踪文件很大。我只想跟踪当我调用某个URI时会发生什么,例如:

https://api.example.com/oauth/RequestToken

因为在我的网络应用运行了几个小时之后,连接到此URI会出现问题。

我想忽略对其他URI的所有请求,例如:

https://api.example.com/Foo

因为这些请求工作正常,并且使用我不需要的数据填充日志。

1 个答案:

答案 0 :(得分:2)

您可能需要查看Message Filters(向下滚动页面的一半到“消息过滤器”部分。)另一页here专门用于消息记录过滤器。这是一个有根据的猜测,你的例子的配置应该是什么样的:

<messageLogging logMessagesAtTransportLevel="true" logMessagesAtServiceLevel="true" >
   <filters>
        <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
                xmlns:a="http://www.w3.org/2005/08/addressing">
            /soap:Envelope/soap:Header/a:Action[starts-with(text(),'https://api.example.com/oauth/RequestToken')]
        </add>
   </filters>
</messageLogging>

还有一个可能有用的跟踪日志过滤器here的自定义实现。