简单的日志管理代码

8/3/2015来源:C#应用人气:2130

简单的日志管理代码

自己写的记录日志,定期删除日志的方法。

方法比较简单,记录一下吧。

 1         /// <summary> 2         /// 写日志 3         /// </summary> 4         /// <param name="strMsg">内容</param> 5         /// <param name="strPath">路径(相对hycom下的文件夹路径)</param> 6         /// <param name="fileName">日志名(默认yyyy-MM-dd.txt)</param> 7         public static void WriteLog(string strMsg,string strPath,string fileName) 8         { 9             string path = AppDomain.CurrentDomain.BaseDirectory + strPath;10             if(!path.EndsWith("\\")||!path.EndsWith("/"))11             {12                 path+="\\";13             }14             if(!Directory.Exists(path))15             {16                 Directory.CreateDirectory(path);17             }18             DeleteLog(path);19             if(fileName=="")20             {21                 fileName = DateTime.Now.ToString("yyyy-MM-dd")+".txt";22             }23             if(!fileName.EndsWith(".txt"))24             {25                 fileName+=".txt";26             }27             try28             {29                 //string fileName =DateTime.Now.ToString("yyyy-MM-dd") + ".txt";30 31                 StreamWriter sw = File.AppendText(path+fileName);32 33                 sw.WriteLine("{0}:{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), strMsg);34                 //sw.WriteLine("\n\r");35                 sw.Flush();36                 sw.Close();37             }38             catch { }39         }40         /// <summary>41         /// 写日志42         /// </summary>43         /// <param name="strMsg">内容</param>44         /// <param name="strPath">路径(相对hycom下的文件夹路径)</param>45         public static void WriteLog(string strMsg,string strPath)46         {47             string fileName = DateTime.Now.ToString("yyyy-MM-dd")+".txt";48             WriteLog(strMsg,strPath,fileName);49         }50 51         /// <summary>52         /// 定期删除日志53         /// </summary>54         /// <param name="strPath">日志路径</param>55         PRivate static void DeleteLog(string strPath)56         {57             58             if(Directory.Exists(strPath))59             {60                 DirectoryInfo dinfor = new DirectoryInfo(strPath);61                 FileInfo[] files = dinfor.GetFiles();62                 foreach(FileInfo file in files)63                 {64                     try65                     {66                         //删除创建日志日期是3个月前的日志67                         if(DateTime.Compare(file.CreationTime.AddMonths(3),DateTime.Now)<0)68                         {69                             file.Delete();70                         }71                         //删除最后修改日志日期是3个月前的日志72                         if(DateTime.Compare(file.LastWriteTime.AddMonths(3),DateTime.Now)<0)73                         {74                             file.Delete();75                         }76                         //删除日志名称日期是3个月前的日志77                         if(DateTime.Compare(Convert.ToDateTime(file.Name.Substring(0,10)),DateTime.Now.AddMonths(-3))<0)78                         {79                             file.Delete();80                         }81                     }82                     catch(Exception ex)83                     {84                         continue;85                     }86                 }87             }88         }