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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? trace.cs

?? c#源代碼.含金量重.
?? CS
字號(hào):
using System;  
using System.IO;
using System.Threading;

namespace DocAdmin.COMMON
{
	/// <summary>
	/// Trace 的摘要說(shuō)明。
	/// </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)為T(mén)race.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>
		/// 格式化待寫(xiě)的信息
		/// </summary>
		/// <param name="location">程序位置</param>
		/// <param name="type">日志類(lèi)型(信息、錯(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")) ;

			//將格式化的信息寫(xiě)入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")) ;

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

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

			//在文件名稱(chēng)后面加日期后,再加上擴(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();


			//在文件名稱(chēng)和擴(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>
		/// 歸檔:文件超過(guò)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>
		/// 寫(xiě)日志
		/// </summary>
		/// <param name="location">日志位置</param>
		/// <param name="type">日志類(lèi)型</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,可寫(xiě)入,在文件尾追加記錄
				FileStream fs=new FileStream
					(
					path,
					FileMode.Append,
					FileAccess.Write,
					FileShare.ReadWrite
					);

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

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

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

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

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

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

		/// <summary>
		/// 寫(xiě)日志
		/// </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,可寫(xiě)入,在文件尾追加記錄
				FileStream fs=new FileStream
					(
					path,
					FileMode.Append,
					FileAccess.Write,
					FileShare.ReadWrite
					);

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

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

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

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

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

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

	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线视频18| 欧美精品一区二区精品网| 91在线视频播放地址| 成人久久视频在线观看| 国产成人精品免费看| 亚洲成av人影院在线观看网| 中文字幕在线观看不卡| 一区二区三区在线免费播放| 一区二区三区.www| 日本视频中文字幕一区二区三区| 美女在线视频一区| 99久久伊人久久99| 欧美日韩国产小视频| 26uuu久久天堂性欧美| 国产欧美va欧美不卡在线| 中文字幕日韩av资源站| 亚洲va欧美va天堂v国产综合| 日韩不卡免费视频| 99免费精品在线观看| 欧美喷潮久久久xxxxx| 欧美国产日韩亚洲一区| 一区二区三区四区国产精品| 日本亚洲一区二区| 成人黄色av网站在线| 色噜噜狠狠色综合欧洲selulu| 91原创在线视频| 日韩精品一区二区三区四区视频| 中文字幕av在线一区二区三区| 五月天丁香久久| 岛国精品一区二区| 日韩欧美一级二级三级久久久| 国产精品传媒视频| 国产成人a级片| 久久综合色综合88| 日韩专区中文字幕一区二区| 成人av片在线观看| 精品国产一区二区三区不卡| 亚洲国产日日夜夜| 91免费国产视频网站| 亚洲国产精品成人综合| 久久99国产精品久久| 91精品国产福利| 无吗不卡中文字幕| 欧美日韩黄色一区二区| 中文字幕av一区二区三区| 午夜av一区二区| 欧美福利电影网| 亚洲国产欧美一区二区三区丁香婷| 99精品欧美一区| 亚洲精品国产精华液| 色婷婷综合五月| 亚洲一区在线视频| 欧美一区二区三区视频在线观看| 丝袜脚交一区二区| 精品日韩在线观看| 成人午夜激情片| 亚洲精选视频在线| 91高清视频免费看| 日韩精品亚洲一区二区三区免费| 欧美精品乱人伦久久久久久| 秋霞电影一区二区| 亚洲国产精品高清| 欧美私模裸体表演在线观看| 奇米一区二区三区| 久久久久久久久久久久电影| 理论电影国产精品| 精品电影一区二区| av不卡在线观看| 亚洲图片有声小说| 国产亚洲成av人在线观看导航| 粉嫩av一区二区三区在线播放| 亚洲欧美视频在线观看| 欧美视频三区在线播放| 国产一区999| 性感美女极品91精品| 国产欧美1区2区3区| 欧美日韩精品一区二区三区蜜桃| 视频精品一区二区| 亚洲欧美在线视频| 精品久久国产老人久久综合| 色一情一乱一乱一91av| 国产一区二区0| 日韩国产精品91| 中文字幕综合网| 国产亚洲一本大道中文在线| 欧美在线一二三| 不卡的av在线播放| 韩国视频一区二区| 国产精品你懂的| 精品国产乱码久久久久久久久| av在线综合网| 国产综合色视频| 亚洲a一区二区| 亚洲一区二区三区视频在线播放| 亚洲国产精品精华液2区45| 日韩你懂的在线观看| 日韩一区二区三区av| 欧美日韩视频不卡| 精品视频在线免费观看| 欧美综合视频在线观看| 99视频国产精品| 欧美怡红院视频| 欧美三级视频在线观看| 欧美色成人综合| 91精品国产色综合久久不卡电影| 欧美日韩国产电影| 欧美一区二区三区思思人| 日韩欧美一二三四区| 久久毛片高清国产| 国产偷国产偷精品高清尤物 | 懂色av一区二区三区蜜臀| 国产精品18久久久久| 国产高清精品在线| 国产成a人亚洲| 欧洲生活片亚洲生活在线观看| 在线视频国内自拍亚洲视频| 欧美日本视频在线| 精品免费一区二区三区| 中文文精品字幕一区二区| 亚洲欧美韩国综合色| 午夜影院久久久| 国产成人免费视频一区| 在线精品亚洲一区二区不卡| 欧美人动与zoxxxx乱| 日本一区二区在线不卡| 亚洲色图丝袜美腿| 久久精品国产亚洲高清剧情介绍| 国产福利一区在线| 精品视频一区三区九区| 国产欧美日韩另类一区| 亚洲成人www| 99综合电影在线视频| 在线看不卡av| 日韩区在线观看| 亚洲欧洲国产日本综合| 久久精品久久综合| 欧美在线观看你懂的| 中文字幕日本乱码精品影院| 天天综合天天做天天综合| bt欧美亚洲午夜电影天堂| 日韩一级黄色片| 午夜精品福利在线| 色偷偷成人一区二区三区91 | 91小视频在线观看| 国产欧美一区二区精品仙草咪| 日韩精品一级中文字幕精品视频免费观看| 国产91富婆露脸刺激对白| 精品少妇一区二区三区免费观看| 亚洲高清久久久| 欧美丰满少妇xxxxx高潮对白| 亚洲女同ⅹxx女同tv| 色综合网色综合| 综合在线观看色| 成人丝袜18视频在线观看| 国产三级精品三级在线专区| 精品写真视频在线观看| 久久蜜桃香蕉精品一区二区三区| 一区在线中文字幕| 91在线码无精品| 亚洲精品视频观看| 欧美亚洲一区二区在线| 亚洲午夜在线视频| 欧美色网站导航| 免费观看一级特黄欧美大片| 欧美一区二区三区在线| 久久国产精品色| 中文字幕欧美日本乱码一线二线 | 亚洲欧美视频在线观看视频| 欧洲亚洲精品在线| 蜜臀av亚洲一区中文字幕| 一区二区理论电影在线观看| av资源网一区| 秋霞av亚洲一区二区三| 国产亚洲美州欧州综合国| 91在线视频播放| 欧美aaaaa成人免费观看视频| 久久久久久综合| 日本韩国欧美在线| 久久99国产精品尤物| 亚洲色图视频网| 久久久亚洲欧洲日产国码αv| 不卡一区在线观看| 亚洲18色成人| 9191成人精品久久| 国产盗摄一区二区| 日韩在线一区二区| 国产精品看片你懂得| 4438成人网| 日本伦理一区二区| 国产乱一区二区| 日韩专区中文字幕一区二区| 国产精品黄色在线观看| 欧美成人一区二区三区| 日本韩国欧美一区| 岛国精品一区二区| 国产精品一区二区视频| 日产精品久久久久久久性色| 国产精品色哟哟| 久久综合狠狠综合久久综合88| 欧美性受xxxx|