.net实现日志文件重命名且保留历史日志文件
一.当WebSurver.log日志文件内容大于多少M时,进行重命名,重命名的名字是系统当前时间(可以根据自己的需要更改名字),以时间重命名的日志都是一些历史记录,以便日后查看,但最新记录的东西还是会记录在WebSurver.log中
二.以下是实现的代码
publicstaticvoidWriteSysLog(stringp_strLogMsg){//获取Web.config中设置的一个盘符路径stringcustomPath=ConfigurationManager.AppSettings["ImagePath"].ToString();string[]strSplit=customPath.Split('\\');stringletter=strSplit[0].ToString();//获得盘符stringstrFileDirectory=letter+"\\XCKY_Chancel\\";//文件夹名称stringstrFileName=strFileDirectory+"WebSurver.log";//文件名称stringsourceFileName=strFileName;stringextension=sourceFileName.Substring(sourceFileName.LastIndexOf('.'),sourceFileName.Length-sourceFileName.LastIndexOf('.'));//获得文件后缀stringnewName=DateTime.Now.ToString("yyyyMMddHHmmssfff").ToString();//新文件的名称if(!Directory.Exists(strFileDirectory))//文件不存在{Directory.CreateDirectory(strFileDirectory);}if(File.Exists(strFileName))//如果文件存在{FileInfofi=newFileInfo(strFileName);if(fi.Length>1024*1024*10)//如果文件大于10M,则重命名{if(!File.Exists(Path.Combine(strFileDirectory,newName+extension)))//判断是否存在相同的名字{stringcurrNewFilePath=Path.Combine(strFileDirectory,newName);fi.MoveTo(currNewFilePath+extension);//生成一个重命名的文件}}}if(File.Exists(strFileName)){stringstrLogMsg="["+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff")+"]"+p_strLogMsg+"\r\n";File.AppendAllText(strFileName,strLogMsg);}else{FileStreamfs1=newFileStream(strFileName,FileMode.Create,FileAccess.Write);//创建写入文件StreamWritersw=newStreamWriter(fs1);sw.WriteLine("["+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff")+"]"+p_strLogMsg+"\r");//开始写入值sw.Close();fs1.Close();}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。