还记得上边在项目属性中选中的那个define Trace constant选项吗?那个选项的作用是,如果你选中了,那么程序在编译的时候就会把Trace的相关代码编译到dll中,在VS调试的时候可以输出信息,而且部署到服务器上依然可以有用。有人说,服务器上不是没有VS吗?其实Trace类的输出方向是可以重定位的,我们可以使其输出到文本文件或者windows Log记录中。
public class ControlTraceListener : TraceListener
{
private Control _control;
private StringSendDelegate _invokeWrite;
private delegate void StringSendDelegate(string msg);
public ControlTraceListener(Control target)
{
_control = target;
_invokeWrite = new StringSendDelegate(SendString);
}
public override void Write(string message)
{
_control.Invoke(_invokeWrite, new object[] { message });
}
public override void WriteLine(string message)
{
_control.Invoke(_invokeWrite, new object[] { message + Environment.NewLine });
}
private void SendString(string msg)
{
_control.Text += msg;
}
}
Debug与Trace工具类的应用,布布扣,bubuko.com
原文地址:http://blog.csdn.net/sundacheng1989/article/details/28250033