天天看點

C# 日志記錄

public class LogMrg
    {
       public static string oldfileName = "";
       /// <summary>
       /// 
       /// </summary>
       /// <param name="logcontent">日志内容</param>
       /// <param name="filename">完全路徑名(路徑+檔案名)</param>
       public static void WriteLog(string logcontent,string filename)
       {
           WriteLogFile(logcontent, filename);
       }
       /// <summary>
       /// 必須要在配置檔案的節點 appSetting 下添加一個節點 fname.
       /// </summary>
       /// <param name="input"></param>
       public static void WriteLogFile(string input)
       {
           if (oldfileName.Trim() == "")
           {
               oldfileName = ConfigurationManager.AppSettings["fname"].ToString();
           }
           FileInfo finfo = new FileInfo(oldfileName);
       
           //如果檔案大大小大于2M,則建立一個檔案
           if (finfo.Exists && finfo.Length > 20480)
           {
               oldfileName = oldfileName + DateTime.Now.ToString("yyyyMMddHHmmss")+".txt";
           }
           WriteLogFile(input, oldfileName);
        
       }
       /// <summary>
       /// fname:指定日志檔案的目錄
       /// </summary>
       /// <param name="input">日志内容</param>
       /// <param name="fname">完全路徑名(路徑+檔案名)</param>
        public static  void WriteLogFile(string input,string fname)
        {
            //1 指定日志檔案的目錄   fname
         
            //2 定義檔案資訊對象
            FileInfo finfo = new FileInfo(fname);
            /////判斷檔案是否存在以及是否大于2M
            //if (finfo.Exists && finfo.Length > 20480)
            //{
            //    fname = fname + DateTime.Now.ToString();
            //}
            //建立隻寫檔案流
            using (FileStream fs = finfo.OpenWrite())
            {
                //根據上面建立的檔案流建立寫資料流
                StreamWriter w = new StreamWriter(fs);
                //設定寫資料流的起始位置為檔案流的末尾
                w.BaseStream.Seek(0, SeekOrigin.End);
               
                //寫入目前系統時間
                w.Write("--{0} {1} ", DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString());
                //寫入日志内容
                w.Write(input);
                //并換行
                w.WriteLine("\r\n");
                //清空緩沖區内容,并把緩沖區内容寫入基礎流
                w.Flush();
                //關閉寫資料流
                w.Close();
            }
        }
    }
 
//配置檔案裡的節點:<add key="fname" value="D:\\VSTest\\sjdb\\logfile.txt"/>      

 作者:沐雪

繼續閱讀