📄 htmltraceoutput.cs
字号:
using System;
namespace Addot.Diagnostics
{
/// <summary>
/// Write traces into an HTML file, this class is registered
/// as a listener of the System.Diagnostics.Trace class.
/// </summary>
public class HtmlTraceOutput : System.Diagnostics.TraceListener
{
private System.IO.StreamWriter TraceStream;
public HtmlTraceOutput(string fileName) : base()
{
TraceStream = new System.IO.StreamWriter(fileName + ".htm");
TraceStream.WriteLine("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">");
TraceStream.WriteLine("<HTML><TITLE>{0}</TITLE>", fileName);
TraceStream.WriteLine("<BODY>");
TraceStream.WriteLine("<br></br>");
TraceStream.WriteLine("<H2>{0}</H2>", fileName);
TraceStream.WriteLine("<H4>{0} - {1}</H4>", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString());
TraceStream.WriteLine("<br></br>");
TraceStream.WriteLine("<TABLE><TR><TD align=middle><STRONG>Time</STRONG></TD><TD align=middle><STRONG>Category</STRONG></TD><TD align=middle><STRONG>Message</STRONG></TD></TR>");
}
public void Register()
{
System.Diagnostics.Debug.Listeners.Add(this);
}
private void OutputTrace(string category, string message)
{
string now = DateTime.Now.ToLongTimeString();
TraceStream.WriteLine("<TR><TD>{0}</TD><TD>{1}</TD><TD>{2}</TD></TR>",
now, category, message);
}
#region --- TraceListener ---
public override void Close()
{
base.Close ();
System.Diagnostics.Debug.Listeners.Remove(this);
TraceStream.WriteLine("</TABLE></BODY></HTML>");
TraceStream.Close();
TraceStream = null;
}
public override void Write(object o)
{
OutputTrace("", o.ToString());
}
public override void Write(string s)
{
OutputTrace("", s);
}
public override void Write(object o, string s)
{
OutputTrace(o.ToString(), s);
}
public override void Write(string o, string s)
{
OutputTrace(o, s);
}
public override void WriteLine(object o)
{
OutputTrace("", o.ToString());
}
public override void WriteLine(string s)
{
OutputTrace("", s);
}
public override void WriteLine(object o, string s)
{
OutputTrace(o.ToString(), s);
}
public override void WriteLine(string o, string s)
{
OutputTrace(o, s);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -