對(duì)于一個(gè)完整的程序系統(tǒng),一個(gè)日志記錄是必不可少的。可以用它來記錄程序在運(yùn)行過程中的運(yùn)行狀態(tài)和報(bào)錯(cuò)信息。比如,那些不想通過彈框提示的錯(cuò)誤,程序執(zhí)行過程中捕獲的異常等。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比雙城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式雙城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋雙城地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
首先,在你的解決方案中,適當(dāng)?shù)哪夸浿行陆ㄒ粋€(gè)類,比如 LogManager:
編寫如下代碼:
/// <summary> /// 日志管理 /// </summary> public class LogManager { private string _logDir; // 日志文件存放目錄 private static LogManager m_LogInstance; // 靜態(tài)單例對(duì)象 // 靜態(tài)構(gòu)造函數(shù) static LogManager() { m_LogInstance = new LogManager(); } // 私有構(gòu)造函數(shù)(必備函數(shù),不允許外部對(duì)該類進(jìn)行實(shí)例化) private LogManager() { _logDir = Environment.CurrentDirectory + "\\Log"; this.DelOldFile(); } /// <summary> /// 屬性獲取單例對(duì)象 /// </summary> public static LogManager LogInstance { get { return m_LogInstance; } } /// <summary> /// 寫入一條日志記錄 /// </summary> /// <param name="pLog">日志記錄內(nèi)容</param> public void WriteLog(string pLog) { lock (this._logDir) //排它鎖:防止主程序中出現(xiàn)多線程同時(shí)訪問同一個(gè)文件出錯(cuò) { // 根據(jù)時(shí)間創(chuàng)建一個(gè)日志文件 var vDT = DateTime.Now; string vLogFile = string.Format("{0}\\Log{1}{2}{3}.log",_logDir,vDT.Year,vDT.Month,vDT.Day); // 創(chuàng)建文件流,用于寫入 using (FileStream fs = new FileStream(vLogFile, FileMode.Append)) { StreamWriter sw = new StreamWriter(fs); sw.WriteLine("{0} >> {1}", vDT.ToString("yyyy-MM-dd HH:mm:ss"), pLog); sw.Flush(); sw.Close(); fs.Close(); } } } // 刪除過期文件 private void DelOldFile() { // 遍歷指定文件夾下所有子文件,將一定期限前的日志文件刪除。 if (!Directory.Exists(this._logDir)) { // 如果文件夾目錄不存在 Directory.CreateDirectory(this._logDir); return; } var vFiles = (new DirectoryInfo(this._logDir)).GetFiles(); for (int i = vFiles.Length - 1; i >= 0; i--) { // 指定條件,然后刪除 if (vFiles[i].Name.Contains("Log")) { if ((DateTime.Now - vFiles[i].LastWriteTime).Days > 7) { vFiles[i].Delete(); } } } } } // end class
其中,第8行-第26行是關(guān)于實(shí)現(xiàn)單例模式的一種方法。這樣,在你程序的需要位置執(zhí)行:
LogManager.LogInstance.WriteLog("產(chǎn)生了一條日志記錄");
就會(huì)在指定文件中參數(shù)一條日志記錄了。
即:2016-11-23 23:53:45 >> 產(chǎn)生了一條日志記錄
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
網(wǎng)站名稱:C#實(shí)現(xiàn)程序單例日志輸出功能
標(biāo)題鏈接:http://jinyejixie.com/article36/ijgjpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、軟件開發(fā)、云服務(wù)器、標(biāo)簽優(yōu)化、網(wǎng)站排名、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)