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"/>
posted @ 2012-08-08 20:42  沐雪架构师  阅读(173)  评论(0编辑  收藏  举报