C# 如何连接Debug.Writeline()和Debug.Write()的替代目标
我对.net世界比较陌生,我有一个解决方案,其中有数百个Debug.Writeline和Debug.Write。 我需要将消息发送到文本文件和数据库,而不是传统的输出 替换所有Debug.XXX行并将这些特定消息发送到我的目的地是一项单调乏味的任务,不推荐这样做 那么,我应该如何找到另一个目的地呢 一种方法是重写Debug.Write()功能,该功能不起作用 请帮助我并提前感谢您可以继承您自己的: 然后需要注册此类的实例(使用C# 如何连接Debug.Writeline()和Debug.Write()的替代目标,c#,asp.net,.net,C#,Asp.net,.net,我对.net世界比较陌生,我有一个解决方案,其中有数百个Debug.Writeline和Debug.Write。 我需要将消息发送到文本文件和数据库,而不是传统的输出 替换所有Debug.XXX行并将这些特定消息发送到我的目的地是一项单调乏味的任务,不推荐这样做 那么,我应该如何找到另一个目的地呢 一种方法是重写Debug.Write()功能,该功能不起作用 请帮助我并提前感谢您可以继承您自己的: 然后需要注册此类的实例(使用Trace.Listeners.Add(): 现在,对Debug.W
Trace.Listeners.Add()
:
现在,对
Debug.Write()
和Debug.WriteLine()
的所有调用都被转发到MyTraceListener
实例的相应方法中。请注意,这只发生在调试版本中。在发布版本中,对Debug.Write()
和Debug.WriteLine()的调用
什么都不要做。您可以继承自己的:
然后需要注册此类的实例(使用Trace.Listeners.Add()
:
现在,对
Debug.Write()
和Debug.WriteLine()
的所有调用都被转发到MyTraceListener
实例的相应方法中。请注意,这只发生在调试版本中。在发布版本中,对Debug.Write()
和Debug.WriteLine()的调用
什么都不要做。请注意,对调试.WriteLine
及其同级的所有调用都将在发布版本中删除。请注意,对调试.WriteLine
及其同级的所有调用都将在发布版本中删除。感谢您,我只需要在调试版本中提供帮助,但我有一个疑问,因为我的经验很短,creating只有一个tracer实例可以解决包含10个以上项目的整个解决方案中的问题?如果是的话,创建实例的最佳位置是什么?如果有人告诉你一些事情,很抱歉way@ManojKalluri是的,每个进程一个侦听器就足够了(无论进程加载多少个程序集)。在哪里放置代码取决于您的解决方案体系结构,我不能告诉您。感谢您的帮助,我只需要调试版本,但我有一个疑问,因为我的短期经验,只创建一个tracer实例将解决整个解决方案中的问题,该解决方案包含10多个项目?如果是这样,创建inst的最佳位置是什么抱歉,如果我告诉你了way@ManojKalluri是的,每个进程一个侦听器就足够了(不管进程加载了多少个程序集)。将代码放在哪里取决于您的解决方案体系结构,我不能告诉您这一点。
public class MyTraceListener : TraceListener
{
// called (in debug-mode) when Debug.Write() is called
public override void Write(string message)
{
// handle/output "message" properly
}
// called (in debug-mode) when Debug.WriteLine() is called
public override void WriteLine(string message)
{
// handle/output "message" properly
}
}
var myListener = new MyTraceListener();
Trace.Listeners.Add(myListener);