说明:
在平时,我们经常会遇到,系统出错的时候,不知道错误出在什么地方,这时候就需要把错误信息记录到到一个文件中
应用:
cs代码:
using
System;
using System.IO;
using System.Data;
using System.Configuration;
using System.Web;
/// <summary>
/// LogWrite 的摘要说明
/// </summary>
public class LogWrite
{
/* ******************************************************************************************
* 实例化对象,LogWrite为程序名;
* private LogWrite lg = new LogWrite("[类名]");
* 得到程序所在的路径
LogWrite.serPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; ;
写日志
info.WriteDebugLog(methodName,ex.ToString());
******************************************************************************************* */
public static string serPath; // 日志文件路径,事先指定
private string className; // 出错的类名
public LogWrite( string className)
{
this .className = className;
// 获取网站在服务器的物理位置
serPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
//
// TODO: 在此处添加构造函数逻辑
//
}
#region "写日志"
/// <summary>
/// 写日志
/// </summary>
/// <param name="methodName"> 方法名称 </param>
/// <param name="errorInfo"> 错误信息 </param>
public void WriteDebugLog( string methodName, string errorInfo)
{
try
{
/// 指定日志文件的目录
string fname = serPath + " \\LogInfo.txt " ;
/// 定义文件信息对象
FileInfo finfo = new FileInfo(fname);
/// 判断文件是否存在以及是否大于512K
if (finfo.Exists && finfo.Length > 100 * 1024 * 1024 )
{
/// 删除该文件
finfo.Delete();
}
/// 创建只写文件流
using (FileStream fs = finfo.OpenWrite())
{
/// 根据上面创建的文件流创建写数据流
StreamWriter w = new StreamWriter(fs);
/// 设置写数据流的起始位置为文件流的末尾
w.BaseStream.Seek( 0 , SeekOrigin.End);
w.Write( " <------------------------------------------------------------------------------------->\r\n " );
/// 写入“Debug Info: ”
w.Write( " Debug时间 : " );
/// 写入当前系统时间
w.Write( " {0} {1}\r\n " , DateTime.Now.ToLongDateString(), DateTime.Now.ToLongTimeString());
// 写入出错的类名称
w.Write( " Debug类名 : " + className + " \r\n " );
// 写入出错的方法名称
w.Write( " Debug方法名 : " + methodName + " \r\n " );
// 写入错误信息
w.Write( " Debug错误信息: " + errorInfo + " \r\n " );
w.Write( " <------------------------------------------------------------------------------------->\r\n " );
/// 清空缓冲区内容,并把缓冲区内容写入基础流
w.Flush();
/// 关闭写数据流
w.Close();
}
}
catch (Exception ex)
{
string strEx = ex.ToString();
}
}
#endregion
}
using System.IO;
using System.Data;
using System.Configuration;
using System.Web;
/// <summary>
/// LogWrite 的摘要说明
/// </summary>
public class LogWrite
{
/* ******************************************************************************************
* 实例化对象,LogWrite为程序名;
* private LogWrite lg = new LogWrite("[类名]");
* 得到程序所在的路径
LogWrite.serPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; ;
写日志
info.WriteDebugLog(methodName,ex.ToString());
******************************************************************************************* */
public static string serPath; // 日志文件路径,事先指定
private string className; // 出错的类名
public LogWrite( string className)
{
this .className = className;
// 获取网站在服务器的物理位置
serPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
//
// TODO: 在此处添加构造函数逻辑
//
}
#region "写日志"
/// <summary>
/// 写日志
/// </summary>
/// <param name="methodName"> 方法名称 </param>
/// <param name="errorInfo"> 错误信息 </param>
public void WriteDebugLog( string methodName, string errorInfo)
{
try
{
/// 指定日志文件的目录
string fname = serPath + " \\LogInfo.txt " ;
/// 定义文件信息对象
FileInfo finfo = new FileInfo(fname);
/// 判断文件是否存在以及是否大于512K
if (finfo.Exists && finfo.Length > 100 * 1024 * 1024 )
{
/// 删除该文件
finfo.Delete();
}
/// 创建只写文件流
using (FileStream fs = finfo.OpenWrite())
{
/// 根据上面创建的文件流创建写数据流
StreamWriter w = new StreamWriter(fs);
/// 设置写数据流的起始位置为文件流的末尾
w.BaseStream.Seek( 0 , SeekOrigin.End);
w.Write( " <------------------------------------------------------------------------------------->\r\n " );
/// 写入“Debug Info: ”
w.Write( " Debug时间 : " );
/// 写入当前系统时间
w.Write( " {0} {1}\r\n " , DateTime.Now.ToLongDateString(), DateTime.Now.ToLongTimeString());
// 写入出错的类名称
w.Write( " Debug类名 : " + className + " \r\n " );
// 写入出错的方法名称
w.Write( " Debug方法名 : " + methodName + " \r\n " );
// 写入错误信息
w.Write( " Debug错误信息: " + errorInfo + " \r\n " );
w.Write( " <------------------------------------------------------------------------------------->\r\n " );
/// 清空缓冲区内容,并把缓冲区内容写入基础流
w.Flush();
/// 关闭写数据流
w.Close();
}
}
catch (Exception ex)
{
string strEx = ex.ToString();
}
}
#endregion
}
后台调用的方法:
在load事件之前:
DBOperation dbo
=
new
DBOperation();
LogWrite lg; // 声明写日志的类
private static string className = " 设备维护修理记录[DevicesRunInfo.aspx] " ; // 当前页面
LogWrite lg; // 声明写日志的类
private static string className = " 设备维护修理记录[DevicesRunInfo.aspx] " ; // 当前页面
在catch语句快中:
lg
=
new
LogWrite(className);
lg.WriteDebugLog( " SaveDate() " , ex.ToString());
lg.WriteDebugLog( " SaveDate() " , ex.ToString());