亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? trace.cs

?? 簡單易用的管理系統(tǒng)
?? CS
字號(hào):
using System;  
using System.IO;
using System.Threading;

namespace projmanager
{
	//該源碼下載自www.51aspx.com(51aspx.com)

	/// <summary>
	/// Trace 的摘要說明。
	/// </summary>
	public class Trace
	{
		private static TextWriter m_C=null;

		private static string file_path=null;
		private static string m_dir=null;
		private static string m_file=null;

		public static string FilePath
		{
			get
			{
				return file_path;
			}
			set
			{

				file_path=value;
				m_dir=Path.GetDirectoryName(file_path);
				m_file=Path.GetFileName(file_path);

				//如果未給定路徑,取當(dāng)前路徑
				if(m_dir==""|| m_dir == null)        
				{
					m_dir=".";
				}
				//如果給定路徑不是logs結(jié)尾,加logs
				if(!m_dir.EndsWith("logs"))         
				{
					m_dir+="\\logs";
				}
				//如果未給定文件名,默認(rèn)為Trace.log
				if(m_file == "")             
				{
					m_file = "Trace.log" ;
				}
				//文件擴(kuò)展名,默認(rèn)為.log
				if(!m_file.EndsWith(".log"))
				{
					m_file += ".log" ;
				}

				try
				{
					Directory.CreateDirectory(m_dir);
				}
				catch{}
			}
		}

		/// <summary>
		/// 若需要往控制臺(tái)輸出,調(diào)用方需給出TextWriter
		/// </summary>
		public static TextWriter OutputConsole
		{
			get
			{
				TextWriter tw=null;

				lock(typeof(Trace))
				{
					tw=m_C;
				}
				return tw;
			}
			set
			{
				lock(typeof(Trace))
				{
					m_C=value;
				}
			}
		}
		
		/// <summary>
		/// 格式化待寫的信息
		/// </summary>
		/// <param name="location">程序位置</param>
		/// <param name="type">日志類型(信息、錯(cuò)誤等)</param>
		/// <param name="msg">日志內(nèi)容</param>
		/// <returns>返回StringWriter</returns>
		private static StringWriter BuildMessage(string location, string type,string msg)
		{
			StringWriter sw=new StringWriter();

			//給日志信息加時(shí)間,不帶日期,帶毫秒
			sw.Write("<{0}>",DateTime.Now.ToString("HH:mm:ss:fff")) ;

			//將格式化的信息寫入StringWriter
			sw.Write("[" + location + "]" + "<" + type + ">" + ": " + msg + "\n");

			return sw;
		}

		/// <summary>
		/// 給調(diào)用方已格式化的信息加時(shí)間
		/// </summary>
		/// <param name="format">調(diào)用方給出的格式</param>
		/// <param name="p">日志內(nèi)容</param>
		/// <returns>返回StringWriter</returns>
		private static StringWriter BuildMessage(string format, params object[] p)
		{
			StringWriter sw=new StringWriter();
			
			//給日志信息加時(shí)間,不帶日期,帶毫秒
			sw.Write("<{0}>",DateTime.Now.ToString("HH:mm:ss:fff")) ;

			//將信息寫入StringWriter
			sw.Write(format,p);
			return sw;
		}
		
		/// <summary>
		/// 在給出的Log文件名中,插入日期
		/// </summary>
		/// <returns></returns>
		private static string LogName()
		{
			StringWriter sw=new StringWriter();

			//將log文件名稱和擴(kuò)展名分開
			char []sp = {'.'} ;
			string []name = m_file.Split(sp) ;

			//在文件名稱后面加日期后,再加上擴(kuò)展名
			sw.Write("{0}_{1}.{2}",
				name[0],
				DateTime.Now.ToString("yyyyMMdd"),
				name[1]);

			return sw.ToString();
		}

		
		/// <summary>
		/// 為待歸檔文件產(chǎn)生節(jié)點(diǎn)數(shù)
		/// </summary>
		/// <param name="file_name">文件名</param>
		/// <returns>節(jié)點(diǎn)數(shù)</returns>
		private static int GetArchiveFileNode(string file_name)
		{
			int node=0;
			StringWriter pattern=new StringWriter();


			//在文件名稱和擴(kuò)展名之間加入_*作為搜索模式
			char []sp = {'.'} ;
			string []name = m_file.Split(sp) ;
			pattern.Write("{0}_*.{1}",name[0],name[1]);

			//在日志目錄中查找所有符合上述模式的文件
			string[] files=Directory.GetFiles(
				m_dir,
				pattern.ToString());

			//為這些文件確定歸檔的節(jié)點(diǎn)
			foreach(string f in files)
			{
				int pos=f.LastIndexOf(".");
				string n=f.Substring(pos+1);
				
				try
				{
					int nn=int.Parse(n);
					if(nn>=node) node=nn+1;
				}
				catch{}
			}
			
			return node;

		}

		
		/// <summary>
		/// 歸檔:文件超過10M后
		/// </summary>
		/// <param name="fname">產(chǎn)生的歸檔文件名</param>
		private static void ArchiveThisFile(string fname)
		{
			//為待歸檔文件產(chǎn)生節(jié)點(diǎn)數(shù)
			int node=GetArchiveFileNode(fname);

			//分離文件名
			char []sp = {'.'} ;
			string []name = fname.Split(sp) ;
            			
			while(true)
			{

				//將節(jié)點(diǎn)數(shù)插入到文件名中間,作為待歸檔的文件名
				string a_path=m_dir+"\\"+name[0]+"_"+node.ToString() + "." + name[1];
				string s_path=m_dir+"\\"+fname;
				try
				{
					//歸檔
					File.Move(s_path,a_path);
					break;
				}
				catch{node+=1;}
			}
		}
		
		/// <summary>
		/// 寫日志
		/// </summary>
		/// <param name="location">日志位置</param>
		/// <param name="type">日志類型</param>
		/// <param name="msg">信息</param>
		public static void Write(string location, string type,string msg)
		{
			//若文件名為空
			if(file_path==null||
				file_path=="") return ;

			StringWriter sw=null;

			lock(typeof(Trace))
			{
				string	lfile=LogName();
				long	lsize=0;
				string  path=m_dir+"\\"+lfile;

				//定義FileStream,可寫入,在文件尾追加記錄
				FileStream fs=new FileStream
					(
					path,
					FileMode.Append,
					FileAccess.Write,
					FileShare.ReadWrite
					);

				//實(shí)例一個(gè)StreamWriter
				StreamWriter fsw=new StreamWriter(fs);

				if(sw==null)
				{
					//格式化待寫的信息
					sw=BuildMessage(location,type,msg);
				}

				//將字符串寫到StreamWriter
				fsw.Write(sw.ToString());
				//獲取文件大小
				lsize=fs.Length;
				//關(guān)閉StreamWriter和FileStream
				fsw.Close();
				fs.Close();

				if(lsize>1024*1024*10)
				{
					//文件超過10M后,歸檔
					ArchiveThisFile(lfile);					
				}

				//如果需要輸出到控制臺(tái)
				if(m_C!=null)
				{
					if(sw==null)
					{
						//格式化待寫的信息
						sw=BuildMessage(location,type,msg);
					}

					//往控制臺(tái)寫信息
					m_C.Write(sw.ToString());
				}
			}
		}

		/// <summary>
		/// 寫日志
		/// </summary>
		/// <param name="format">日志格式</param>
		/// <param name="p">日志內(nèi)容</param>
		public static void Write(string format, params object[] p)
		{
			//若文件名為空
			if(file_path==null||
				file_path=="") return ;
			StringWriter sw=null;

			lock(typeof(Trace))
			{
				string	lfile=LogName();
				long	lsize=0;
				string  path=m_dir+"\\"+lfile;

				//定義FileStream,可寫入,在文件尾追加記錄
				FileStream fs=new FileStream
					(
					path,
					FileMode.Append,
					FileAccess.Write,
					FileShare.ReadWrite
					);

				//實(shí)例一個(gè)StreamWriter
				StreamWriter fsw=new StreamWriter(fs);

				if(sw==null)
				{
					//格式化待寫的信息
					sw=BuildMessage(format,p);
				}

				//將字符串寫到StreamWriter
				fsw.Write(sw.ToString());
				//獲取文件大小
				lsize=fs.Length;
				//關(guān)閉StreamWriter和FileStream
				fsw.Close();
				fs.Close();

				if(lsize>1024*1024*10)
				{
					//文件超過10M后,歸檔
					ArchiveThisFile(lfile);					
				}

				//如果需要輸出到控制臺(tái)
				if(m_C!=null)
				{
					if(sw==null)
					{
						//格式化待寫的信息
						sw=BuildMessage(format,p);
					}

					//往控制臺(tái)寫信息
					m_C.Write(sw.ToString());
				}
			}
		}

	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香六月综合激情| 精品在线观看免费| 91精品国产高清一区二区三区蜜臀 | 福利电影一区二区| 亚洲最新视频在线观看| 欧美日韩1区2区| 国产在线精品免费av| 亚洲综合视频网| 精品欧美久久久| 色偷偷久久一区二区三区| 蜜臀av国产精品久久久久| 国产精品乱人伦一区二区| 欧亚一区二区三区| 久久99热国产| 亚洲动漫第一页| 中文字幕 久热精品 视频在线| 欧美视频一区二| 粉嫩高潮美女一区二区三区| 性久久久久久久久| 国产精品动漫网站| 久久色在线视频| 91精品国产综合久久精品图片| av中文字幕亚洲| 国产酒店精品激情| 琪琪久久久久日韩精品| 亚洲午夜久久久久久久久电影院| 国产午夜精品在线观看| 日韩欧美国产电影| 欧美日韩在线三级| 99久久精品国产精品久久| 国产福利一区二区三区在线视频| 美洲天堂一区二卡三卡四卡视频| 一区二区视频在线| 中文字幕一区二区三区乱码在线| 久久这里只精品最新地址| 精品日本一线二线三线不卡| 91精品国产乱| 6080国产精品一区二区| 欧美在线不卡一区| 欧美日韩三级在线| 欧美理论片在线| 日韩一级视频免费观看在线| 欧美一区二区三级| 日韩你懂的在线观看| 久久久蜜桃精品| 欧美韩国日本综合| 亚洲人精品午夜| 亚洲大片一区二区三区| 婷婷成人综合网| 久久成人羞羞网站| 国产91精品一区二区麻豆亚洲| 久久精品欧美一区二区三区不卡 | 午夜免费久久看| 久久精品理论片| 国产高清精品在线| 色偷偷一区二区三区| 欧美精品第1页| 精品88久久久久88久久久| 中文字幕精品一区二区三区精品| 亚洲视频每日更新| 日日骚欧美日韩| 国产剧情av麻豆香蕉精品| 99久久免费视频.com| 欧美日韩视频专区在线播放| 日韩欧美123| 成人免费在线视频观看| 午夜精品一区二区三区三上悠亚| 美女在线观看视频一区二区| 成人爽a毛片一区二区免费| 日本高清免费不卡视频| 精品久久久久99| 亚洲高清一区二区三区| 国产麻豆视频一区二区| 欧美日韩不卡一区二区| 久久精品一区二区| 图片区日韩欧美亚洲| 成人av午夜电影| 日韩欧美的一区| 亚洲第一成年网| 97aⅴ精品视频一二三区| 欧美tk—视频vk| 日韩电影在线免费看| 色视频一区二区| 国内精品嫩模私拍在线| 欧美日韩国产区一| 亚洲精品视频免费观看| 风间由美性色一区二区三区| 91精品一区二区三区久久久久久| 日韩一区中文字幕| 国产一区二区三区国产| 91精品免费观看| 视频精品一区二区| 欧美三日本三级三级在线播放| 欧美激情一区三区| 国产精品一二二区| 日韩午夜中文字幕| 男女男精品视频网| 日韩一级成人av| 蜜臀av一区二区| 欧美成人性福生活免费看| 视频一区二区国产| 91精品国产综合久久精品| 日本不卡一区二区三区| 欧美剧在线免费观看网站| 亚洲国产一区二区视频| 在线中文字幕一区二区| 夜夜亚洲天天久久| 欧美日韩日日骚| 五月天激情小说综合| 91精品国产综合久久久久久久| 蜜桃一区二区三区在线观看| 欧美一级理论片| 国产老妇另类xxxxx| 亚洲欧洲美洲综合色网| 欧洲视频一区二区| 奇米色一区二区| 国产欧美一区二区精品婷婷| 成人av片在线观看| 亚洲精品国产一区二区三区四区在线 | 国产高清亚洲一区| 亚洲乱码日产精品bd| 欧美亚洲一区二区三区四区| 天天色天天爱天天射综合| 精品国产乱子伦一区| 成人激情动漫在线观看| 亚洲一区二区三区在线播放| 欧美精品在线观看一区二区| 国产一区二区伦理| 亚洲一区二区黄色| 亚洲欧美日韩小说| 欧美一级二级三级蜜桃| 国产亚洲综合性久久久影院| 91福利视频网站| 国产尤物一区二区| 亚洲国产欧美在线人成| 欧美国产精品专区| 91精品国产综合久久国产大片| 成人美女在线观看| 奇米精品一区二区三区在线观看 | 91麻豆自制传媒国产之光| 精品一区二区三区在线视频| 亚洲人精品午夜| 中文字幕欧美国产| 亚洲精品一区二区三区福利 | 精品伊人久久久久7777人| 一区二区三区四区不卡在线| 久久亚洲综合色一区二区三区| 欧美色大人视频| 国产精品毛片久久久久久久| 日韩你懂的在线播放| 欧美电影一区二区三区| 色婷婷综合激情| 成人黄色片在线观看| 国产美女视频一区| 麻豆久久一区二区| 三级亚洲高清视频| 婷婷成人综合网| 午夜精品福利一区二区蜜股av| 亚洲猫色日本管| 亚洲男女毛片无遮挡| 综合色天天鬼久久鬼色| 久久精品二区亚洲w码| 欧美在线你懂的| 一区二区三区四区在线播放 | 亚洲成人7777| 色狠狠色噜噜噜综合网| 97精品国产露脸对白| 欧美日韩久久久久久| 久久蜜臀精品av| 亚洲一二三四久久| 亚洲h精品动漫在线观看| 日韩国产高清在线| 精品一区二区影视| av电影在线观看一区| 日本精品视频一区二区三区| 欧美午夜电影一区| 欧美日韩成人综合天天影院| 欧美一区二区三区在线视频| 精品日韩99亚洲| 亚洲天堂av一区| 天堂久久一区二区三区| 国产乱子伦一区二区三区国色天香| 成人av第一页| 日韩精品中午字幕| 亚洲六月丁香色婷婷综合久久| 久久av老司机精品网站导航| 色www精品视频在线观看| 精品国产成人在线影院| 亚洲色图制服丝袜| 日本成人在线不卡视频| 成人激情免费网站| 日韩免费视频线观看| 一区二区三区在线观看欧美| 极品少妇一区二区三区精品视频| k8久久久一区二区三区| 欧美电影免费观看高清完整版在线观看| 精品一区二区三区视频| 99精品一区二区| 国产日韩欧美一区二区三区乱码 | 亚洲一区二区在线免费观看视频 |