错误日志写入和管理

前代界面:

        

       

前代的代码比较简单,所以就不写出来了.都是调用下面的方法得到的.

   DropDownList绑定   ddlErrorFile.DataSource = TSWebControls.TSError.GetErrorFileList();
                      ddlErrorFile.DataTextField = "fileName";
                      ddlErrorFile.DataValueField = "filePath";

类代码:

     /// <summary>

     /// 提供经常需要使用的一些出错处理

     /// </summary>

     public class TSError

     {

         /// <summary>

         /// 日志文件的扩展名,最好是一些客户端禁止请求的文件扩展名.如:.config

         /// </summary>

          private static string fileExtend = "printer";

 

         /// <summary>

         /// 将错误写入一个文本文件,日志年月分类

         /// </summary>

         /// <param name="msg">出错的信息</param>        

         public static void ToLog(string msg)

         {

              string fileName = DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "." + fileExtend;

              string filePath = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath + "/Error/" + fileName);

             

              if (!File.Exists(fileName)) File.CreateText(fileName);

             

              StreamWriter sw = File.AppendText(filePath);

              sw.WriteLine("日期:" + DateTime.Now.ToString());

              sw.WriteLine("內容:" + msg);

              sw.WriteLine("--------------------------------------------------");

              sw.WriteLine();

              sw.Flush();

              sw.Close();

         }

 

         /// <summary>

         /// 到得错误日志文件的所有文件列表,把列表绑定到DropDownList

         /// </summary>

         /// <returns>返回文件列表</returns>

         public static System.Collections.ArrayList GetErrorFileList()

         {

              System.Collections.ArrayList fileDirs = new System.Collections.ArrayList();

 

              string dirs = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath + "/Error");

              string[] errorFiles = Directory.GetFiles(dirs,"*." + fileExtend);

             

              foreach (string dir in errorFiles)

              {

                   string fileName = dir.Substring(dir.LastIndexOf("//") + 1 );

                   fileName = fileName.Substring(0,fileName.LastIndexOf("."));

                   string filePath = dir;

                   FileItem FI = new FileItem(fileName,filePath);

                   fileDirs.Add(FI);

              }

              return fileDirs;

         }

 

         /// <summary>

         /// 查看某个日志文件的内容

         /// </summary>

         /// <param name="filePath">文件路径</param>

         /// <returns>返回文件内容</returns>

         public static string GetErrorContent(string filePath)

         {

              string fileContent = string.Empty;

              StreamReader SR = new StreamReader(filePath);           

              fileContent =  SR.ReadToEnd();

              SR.Close();

 

              return fileContent;

         }

 

         /// <summary>

         /// 删除日志文件

         /// </summary>

         /// <param name="FileName">文件名</param>

         /// <returns></returns>

         public static bool DelErrorFile(string FileName)

         {

              string filePath = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath + "/Error/" + FileName + "." + fileExtend);

              try

              {

                   File.Delete(filePath);

                   return true;

              }

              catch

              {

                   return false;

              }

         }

     }

 

     /// <summary>

     /// 临时转换日志文件,保存文件名和文件路径

     /// </summary>

     class FileItem

     {

          private string fileName;

          private string filePath;

 

         public FileItem(string fileName,string filePath)

         {

              this.fileName = fileName;

              this.filePath = filePath;

         }

 

         public string FileName

         {

              get

              {

                   return fileName;

              }

 

              set

              {

                   fileName = value;

              }

         }

 

         public string FilePath

         {

              get

              {

                   return filePath;

              }

              set

              {

                   filePath = value;

              }

         }

    } 

如果哪里有写的不好的地方,请各位指出,各位的批评也是我水平提高的捷径.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值