在需要的地方调用
new RecordError().Record(this.Text,ex);
就可以了!
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Diagnostics;
/// <summary>
/// 作 者:Kogu
/// 模 块:记录错误
/// 创建时间:2008-10-24
/// 修改时间:2008-10-24
/// 功能描述:将错误记录到错误文件
/// </summary>
public class RecordError
{
public RecordError() { }
/// <summary>
/// 记录错误的类名和方法名及错误信息
/// </summary>
/// <param name=”className”>出错的类名</param>
/// <param name=”ex”>错误实例</param>
public void Record(string className,Exception ex)
{
try
{
FileStream fs = null;
if (!File.Exists(”error.txt”))
{
fs = new FileStream(”error.txt”, FileMode.Create);
}
else
{
fs = new FileStream(”error.txt”, FileMode.Append);
}
StackTrace st = new StackTrace(true);
string transferMethod = st.GetFrame(1).GetMethod().Name.ToString();
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(”—————————————————————————————–”);
sw.WriteLine(”日 期:” + DateTime.Now.ToString(”G”));
sw.WriteLine(”类 名:” + className);
sw.WriteLine(”调用错误记录的方法:” + transferMethod);
sw.WriteLine(”引发错误的方法:” + ex.TargetSite.ToString());
sw.WriteLine(”错误消息:” + ex.Message.ToString());
sw.Close();
}
catch (IOException ioe)
{
MessageBox.Show(”错误未被记录!原因:” + ioe.Message.ToString());
}
}
}