如何在C#中重定向调试输出?
目前,我使用以下方法编写了许多状态消息:如何在C#中重定向调试输出?,c#,debugging,textbox,output,C#,Debugging,Textbox,Output,目前,我使用以下方法编写了许多状态消息: Debug.Writeline("This is my status message"); 我希望能够创建一个方法,允许我通过Debug输出消息,或者将消息重定向到UI中的文本框。但是,调试和文本框对象不兼容。我如何做到这一点,使调用者可以使用相同的消息生成输出,并让调用方法决定将其发送到何处(即调试、UI,甚至日志文件)?创建自己的日志类,该类是调试类的桥梁 interface ILog { public void Log(); } publ
Debug.Writeline("This is my status message");
我希望能够创建一个方法,允许我通过
Debug
输出消息,或者将消息重定向到UI中的文本框。但是,调试和文本框对象不兼容。我如何做到这一点,使调用者可以使用相同的消息生成输出,并让调用方法决定将其发送到何处(即调试、UI,甚至日志文件)?创建自己的日志类,该类是调试类的桥梁
interface ILog {
public void Log();
}
public DebugLog : ILog {
public DebugLog(Debug d) {} //ctor that takes Debug Object
public void Log(){}
}
public WindowLog : ILog {
public WindowLog(Text t) {} //ctor that takes window log
public void Log(){}
}
创建自己的日志类,该类是调试类
interface ILog {
public void Log();
}
public DebugLog : ILog {
public DebugLog(Debug d) {} //ctor that takes Debug Object
public void Log(){}
}
public WindowLog : ILog {
public WindowLog(Text t) {} //ctor that takes window log
public void Log(){}
}
您可以创建自己的类,该类派生自
TraceListener
,如的可接受答案中所述
注意:接受的答案详细说明了如何为C#WinForms创建自定义跟踪侦听器,尽管问题是关于WPF的。您可以创建自己的类,该类派生自
TraceListener
,如接受的答案中所述
注意:接受的答案详细说明了如何为C#WinForms创建自定义跟踪侦听器,尽管问题是关于WPF的。使用
trace
,或类似log4net的东西。如果您不喜欢第三方日志库,这里有一个建议的方法来创建使用跟踪
,或者类似log4net的东西。如果你不喜欢第三方日志库,这里有一个建议的方法来创建一个我会将这些方法设置为静态的,这样我就不必每次都记得重新创建Log
类。有没有一种方法可以以多态方式实现这一点,这样我就可以传入Textbox.Text成员或调试对象,并以某种方式对两者使用相同的方法?我不确定自己的解释是否充分,因为我今天起得太早,而且我不是一个早起的人我会将这些方法设置为静态,这样我就不必每次都记得更新Log
类。有没有一种方法可以多态地执行此操作,这样我就可以传入Textbox.Text成员或Debug对象,并以某种方式对两者使用相同的方法?我不确定自己的解释是否充分,因为我今天起得太早,而且我不是一个早起的人