当项目开发完成后交由客户使用,客户在操作中发生了异常,这时候我们该怎么办呢?
也许客户会给你打电话告诉你,但有时候你根本就搞不清楚客户在说什么。
也许你可以远程访问客户桌面,但网速慢的时候怎么办呢?
....
今天告诉大家一个简单的产生异常报告的方法 只用三步 轻松搞定
第一步:
找到项目中的 Global.asax 文件(这个文件是项目自动产生的)
在Application_Start() 方法的上边 写入
string day = DateTime.Now.Day.ToString();
StringBuilder sb = new StringBuilder();
第二步:
Application_Error()方法内部写入
if (HttpContext.Current.AllErrors.Length > 0)
{
string DayTime = DateTime.Now.Day.ToString();
if (DayTime.Equals(day))
{
log4j();
}
else
{
log4j();
}
}
第三步:
写log4j()方法
private void log4j()
{
DateTime DT = DateTime.Now;
string newday = DT.ToLongDateString().ToString();
//这里是存放文件的路径,可以自由设置,不过路径可别搞错了
string fileName = Server.MapPath("/Errors/" + newday + ".txt");
foreach (Exception ex in HttpContext.Current.AllErrors)
{
string url = HttpContext.Current.Request.Url.Query;
sb.Append(ex.Message)
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> .Append(ex.Source)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> .Append(ex.StackTrace)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> .Append("异常产生时间" + DateTime.Now)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> .Append("本异常有" + Utility.CurrentUser.Name + "发起</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>.Append("来自" + HttpContext.Current.Request.Path + "页面")</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>.Append("截取到的参数是" + url);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
}
System.IO.StreamWriter sw = File.AppendText(fileName);
sw.WriteLine(sb.ToString());
sw.Flush();
sw.Close();
}
好了,就这么简单,以后如果项目中发生异常,而客户又说不清楚的时候,就告诉客户,把Errors文件夹下是今天日期的那个文本发过来。当然,您亲自去给客户排除异常的时候,找到这个文件夹,那就更方便了。
这是一个简单的异常报告,如果想要再详细一点的话,请参考 http://udnz.com/Works/uolib/ 很强大的类库,不过使用前需要引用dll和配置,看个人爱好吧。
原帖地址:http://blog.sina.com.cn/s/blog_6967e0820100ls8m.html