8

.NET 框架中的许多类(尤其是在套接字/网络类中,这是我正在查看的)使用 System.Net.GlobalLog(一个内部类)在某处记录跟踪消息。您可以在 SslState 类中查看 GlobalLog.Assert 和 GlobalLog.Print 之类的示例用法:

SslStream 源代码

这与 System.Net.Logging(也是内部)类不同,它的使用也可以在整个套接字/网络类中找到。

对于 System.Net.Logging,我知道我可以在 App.Config 中使用 <system.diagnostics> 配置块,如果配置正确,这将导致 System.Net.Logging 消息被记录。但是,这似乎不会影响 System.Net.GlobalLog。

搜索了大约一个小时后,我似乎找不到任何有关定位 System.Net.GlobalLog 输出的信息。有谁知道如何定位/查看/控制这个的输出?

4

2 回答 2

2

正如您所说,GlobalLog 是 System.Net 程序集的内部类。如果无法修改 System.Net 程序集,您将无法访问该类。

也就是说,您可能需要查看以下内容:http ://www.123aspx.com/rotor/RotorSrc.aspx?rot=42941

看起来你必须有编译器标志TRAVEDEBUG设置它才能让它工作..但我没有看到它实际上在哪里对记录的信息做了任何事情。评论表明它应该寻找环境变量设置并将日志转储到系统某处的文本文件中;但是该页面上的代码似乎不完整或根本没有完成。

我的猜测是您需要找到其他方法来访问所需的日志记录信息。

于 2012-11-12T20:02:56.957 回答
0

我没有足够的代表将其作为对现有答案的评论,但我想弄清楚 TcpClient 和 Socket 类中发生了什么,但也发现它们无法进入。我得到的最接近的方法是监视正在进行的 Windows API 调用。我使用了一个名为 API Monitor 的免费软件工具,在这里可以找到:http ://www.rohitab.com/apimonitor 。

于 2016-07-28T21:25:01.310 回答