System.Net.GlobalLog - 如何查看此输出?

Nic*_*ams 8 .net c# sockets logging

.NET框架中的许多类(特别是在socket/network类中,我正在查看)使用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输出的任何信息.有谁知道如何定位/查看/控制此输出?

Not*_*tMe 2

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

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

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

我的猜测是您需要找到其他方式来访问您想要的日志信息。

  • 归根结底,如果没有 System.dll 库的调试/旅行编译版本,我将无法获得该信息。此外,这些类的源代码无法在 Visual Studio 中单步执行,因此无法实际调试正在发生的情况。虽然您的答案没有解决我的问题,但这是正确的答案。我的问题的最终解决方案最终是“放弃 SslStream 并采用 BouncyCastle 的 TLS 实现”。我已经在使用该库来生成证书,因此这不会为我的项目添加额外的依赖项。 (3认同)