【问题标题】:System.Net.Sockets tracing without app.config没有 app.config 的 System.Net.Sockets 跟踪
【发布时间】:2012-11-29 08:16:44
【问题描述】:

我需要在运行时设置来自System.Net.Sockets 的跟踪输出,而不使用app.config 文件方法。

app.configSystem.Diagnostics 部分设置东西效果很好,但由于我偶尔需要在现场启用它,我宁愿在运行时配置它。

【问题讨论】:

  • 能用wireshark之​​类的第三方工具吗?
  • 如果在现场我可以.. 但我真正想做的是能够让客户生成可以发回给我的诊断输出。因此需要在运行时打开......谢谢
  • 用户可以更改app.config,然后重新运行应用程序。
  • 可以 .. 不幸的是对客户不友好.. 但有可能.. 谢谢

标签: c# sockets system.diagnostics


【解决方案1】:

我不得不在几年前工作的大型应用程序上做类似的事情(动态启用跟踪)。可以在代码中完成所有操作。基本思想是在启用跟踪的情况下进行编译(即设置 TRACE 条件)并最初将默认跟踪侦听器设置为空输出设备。所有跟踪信息都将进入比特桶。

当你想启用跟踪时,你初始化并安装一个TraceListener,它将跟踪信息输出到你想要去的地方。

Tracing and Instrumenting Applications 的文档展示了如何在代码中启用和配置跟踪,而不依赖于配置文件。

How To: Configure Network Tracing 解释了启用网络跟踪所需的配置文件设置。您必须重新转换才能在代码中执行此操作。特别是,您需要创建与该示例配置文件中定义的源和开关相对应的 TraceSourceTraceSwitch 实例。

这当然是可行的,尽管你需要花点时间来了解所有不同的移动部件。

【讨论】:

  • 这是我所指的方向。 “...需要创建与该示例配置文件中定义的源和开关相对应的 TraceSource 和 TraceSwitch 实例。”这就是我失明的地方。有,例如'private static bool System.Net.Logging.s_LoggingEnabled' 我想切换。在这个阶段我无法掌握的是如何做这样的事情。我会跟进你的指点。我已经成功地使用了开关和信号源。我只是无法从 System.Net.Sockets 中“找到”跟踪数据,除非使用 app.config 进行设置。谢谢
猜你喜欢
  • 1970-01-01
  • 2011-05-07
  • 2011-01-30
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多