如何像 DebugView 应用程序一样读取 c# Debug.WriteLine?

How to read c# Debug.WriteLine as DebugView application does?

我有一个 c# windows 服务使用 Debug.WriteLine():

每秒输出当前日期和时间
Debug.WriteLine(DateTime.Now);

然后我可以使用 SysInternals DebugView 程序 (https://technet.microsoft.com/en-us/sysinternals/bb896647) 读取这个输出,但是我想基本上在我自己的 winforms 应用程序中重新创建我在这个工具中看到的内容,因此你如何以编程方式准确地抓取DebugView 的信息是?

基本上你想拦截来自某个进程的调试信息?

我认为this SO question可能对你有帮助,但我不知道MDbg的当前状态是什么。

我有一个小程序可以做这样的事情,但我是使用命名管道的进程间通信来实现的,所以涉及到双向通信。

您还可以查看 Listeners property,如果有用的话,您可以将调试输出重定向到另一个流。

[编辑 1]:

This SO thread tells you were to download the MDbg API so you can use it within .NET applications. Then the other link I posted 可能会帮助您实际获得输出。

我认为这个问题可能很难解决,我使用 NamedPipes 解决了它,但是两个应用程序(服务和其他一些应用程序)必须相互了解。简单地阅读进程的 Debug.Write 可能涉及对 MDbg 的一些研究。