将错误记录到记事本LogFile

代码归类 Views
开发的过程中,有时候很容易出现未知的错误,这个时候项目已经上线,而又发生无法避免的错误,于是try catch之后将错误记录到记事本。。。
将错误记录到记事本,一般只用于后台。
using System;
using System.Web.UI.HtmlControls;
using System.Web.UI;
using System.Collections;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Text.RegularExpressions;
using System.Security.Cryptography;
using System.Drawing.Drawing2D;
using System.IO;
namespace Common
{
///
/// WrongLog 的摘要说明。
///
public class WrongLog
{
#region ****系统异常的处理程序入口****
///
/// 系统异常的处理程序入口
///
/// System.Exception
/// Page
public static void LogFile(System.Exception E,Page page)
{
if(E.Message!="" && E.Message!=null)
{
int y = System.DateTime.Now.Year;//当前年份
int m = System.DateTime.Now.Month;//当前月份
int d = System.DateTime.Now.Day;//当前日期
string Fol = Folder(page);//得到日志文件的目录名
string Paths = page.Server.MapPath(""+Fol.ToString()+"/log"+y+""+m+""+d+".txt");//指定要写入的日志文件路径
string Url = page.Request.Url.ToString();//取得错误产生的地址
StreamWriter w = File.AppendText(Paths);//追加文本到指定文件
/*调用方法将错误信息写入
* 参数分别为:产生错误的地址;产生错误的原因,引发错误的方法;错误产生的行,另:错误产生的时间不需要指定*/
SetLog (Url,E, w);
w.Close();// 关闭
// 读写文件
StreamReader r = File.OpenText(Paths);
DumpLog (r);
//返回程序错误的提示信息给用户,但不返回错误的详细信息
//Pub_Function.Alert1("对不起!!程序运行时发生错误,导致程序无法正常运行!!\\n\\n发生错误的详细信息我们已经记录!!您可以:\\n\\n一:与我们联系反应您的问题\\n\\n二:等待管理员的处理",page);
}
}
#endregion
#region ****将程序的错误信息写入文件****
///
/// 将程序的错误信息写入文件
///
/// 产生错误的页面
/// 异常信息
/// System.IO.TextWriter
public static void SetLog (string Url,System.Exception E,TextWriter w)
{
w.Write("\r\n产生错误的时间 : ");
w.WriteLine("{0} {1}", System.DateTime.Now.ToLongTimeString(),System.DateTime.Now.ToLongDateString());
w.WriteLine("产生错误的地址 : {0}", Url);
w.WriteLine("错误产生原因 : {0}", E.Message.ToString().Trim());//取得错误产生的原因
w.WriteLine("引发错误的方法 : {0}", E.TargetSite.ToString().Trim());//取得引发错误的方法
w.WriteLine("错误产生的行 : {0}", E.StackTrace.ToString().Trim());//取得错误产生的行
w.WriteLine ("------------------------如有疑问,请联系我们(天络科技)------------------------------------------");
// 更新文件
w.Flush();
}
#endregion
#region ****读写文件****
///
/// 读写文件
///
/// StreamReader
public static void DumpLog (StreamReader r)
{
string line;
while ((line=r.ReadLine())!=null)
{
System.Console.WriteLine(line);
}
r.Close();
}
#endregion
#region ****返回日志文件的目录名****
///
/// 返回日志文件的目录名
///
/// Page类
/// 日志文件的目录名
public static string Folder(Page page)
{
string Years = System.DateTime.Now.Year.ToString();//当前年份
string Months = System.DateTime.Now.Month.ToString();//当前月份
string FolderName = ConfigurationSettings.AppSettings["WebLogFolderName"];
FolderName = FolderName+"/"+Years+"/"+Months;
//判断指定的目录是否存在,不存在则创建
if (!Directory.Exists(page.Server.MapPath(FolderName)))
{
Directory.CreateDirectory(page.Server.MapPath(FolderName));
}
return FolderName;
}
#endregion
}
}
评论 --
  • 消灭零回复