亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

分享一個記錄日志的類,可多線程使用。

2019-11-17 02:43:20
字體:
來源:轉載
供稿:網友

分享一個記錄日志的類,可多線程使用。

好久沒寫博客了,今天分享一個自己用的日志類,非原創,借鑒了前輩的一個想法,然后修改來的。

日志我們是必須的,現在程序都是多線程并發了,記日志就有可能出現問題了,lock?影響性能。log4net太重量級了,本日志是一個輕量級的小工具。

廢話不多說,看源碼

  1 using System;  2 using System.Collections.Generic;  3 using System.IO;  4 using System.Text;  5   6 namespace GEDU.CourSEOnline.Common  7 {  8     /// <summary>  9     /// 日志類(多線程版) 10     /// </summary> 11     public class LogHelper 12     { 13         PRivate string _fileName; 14         private static Dictionary<long, long> lockDic = new Dictionary<long, long>(); 15  16         /// <summary>   17         /// 獲取或設置文件名稱   18         /// </summary>   19         public string FileName 20         { 21             get { return _fileName; } 22             set { _fileName = value; } 23         } 24  25         /// <summary>   26         /// 構造函數   27         /// </summary> 28         /// <param name="fileName">文件全路徑名</param>   29         public LogHelper(string fileName) 30         { 31             if (string.IsNullOrEmpty(fileName)) 32             { 33                 throw new Exception("FileName不能為空!"); 34             } 35             Create(fileName); 36             _fileName = fileName; 37         } 38  39         /// <summary>   40         /// 創建文件路徑 41         /// </summary>   42         /// <param name="fileName">文件路徑</param>   43         public void Create(string fileName) 44         { 45             var directoryPath = Path.GetDirectoryName(fileName); 46             if (string.IsNullOrEmpty(directoryPath)) 47             { 48                 throw new Exception("FileName路徑錯誤!"); 49             } 50             if (!Directory.Exists(directoryPath)) 51             { 52                 Directory.CreateDirectory(directoryPath); 53             } 54         } 55  56         /// <summary>   57         /// 寫入文本   58         /// </summary>   59         /// <param name="content">文本內容</param> 60         /// <param name="newLine">換行標記</param>   61         private void Write(string content, string newLine) 62         { 63             using (FileStream fs = new FileStream(_fileName, FileMode.OpenOrCreate, Fileaccess.ReadWrite, FileShare.ReadWrite, 8, FileOptions.Asynchronous)) 64             { 65                 Byte[] dataArray = Encoding.UTF8.GetBytes(content + newLine); 66                 bool flag = true; 67                 long slen = dataArray.Length; 68                 long len = 0; 69                 while (flag) 70                 { 71                     try 72                     { 73                         if (len >= fs.Length) 74                         { 75                             fs.Lock(len, slen); 76                             lockDic[len] = slen; 77                             flag = false; 78                         } 79                         else 80                         { 81                             len = fs.Length; 82                         } 83                     } 84                     catch (Exception ex) 85                     { 86                         while (!lockDic.ContainsKey(len)) 87                         { 88                             len += lockDic[len]; 89                         } 90                     } 91                 } 92                 fs.Seek(len, SeekOrigin.Begin); 93                 fs.Write(dataArray, 0, dataArray.Length); 94                 fs.Close(); 95             } 96         } 97  98         /// <summary>   99         /// 寫入文件內容  100         /// </summary>  101         /// <param name="content">內容</param>  102         public void WriteLine(string content)103         {104             this.Write(content, Environment.NewLine);105         }106 107         /// <summary>  108         /// 寫入文件內容  不換行109         /// </summary>  110         /// <param name="content">內容</param>  111         public void Write(string content)112         {113             this.Write(content, "");114         }115     }116 }
View Code

用法:

1 string strPath = HttpContext.Current.Server.MapPath(string.Format("/Log/{0:yyyyMMdd}.txt", DateTime.Today));2 //string strPath = string.Format(@"D:/Log/{0:yyyyMMdd}.txt", DateTime.Today);3 LogHelper logHelper = new LogHelper(strPath);4 logHelper.WriteLine(sWord + "  時間:" + DateTime.Now);

如有不足還請指教。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品69精品一区二区三区| 欧美日韩亚洲视频| 欧美夜福利tv在线| 亚洲性无码av在线| 欧美国产日韩视频| 久久久日本电影| 日韩经典中文字幕在线观看| 国产精品爱久久久久久久| 欧美极品在线视频| 欧美一区二区影院| 日韩国产精品亚洲а∨天堂免| 韩国三级日本三级少妇99| 日韩精品丝袜在线| 欧美一级大片视频| 成人网址在线观看| 欧美激情一二区| 北条麻妃久久精品| 国产精品一区av| 亚洲精品中文字幕女同| 欧美性生交xxxxx久久久| 国产性猛交xxxx免费看久久| 欧美精品videosex极品1| 亚洲男人天堂2019| www.欧美精品一二三区| 国内伊人久久久久久网站视频| 亚洲天堂网在线观看| 久久久久久国产精品久久| 国产精品旅馆在线| 91免费看片网站| 日韩av手机在线观看| 久久影视电视剧凤归四时歌| 欧美黑人巨大xxx极品| 尤物九九久久国产精品的分类| 午夜精品国产精品大乳美女| 一区二区欧美久久| 久久久免费高清电视剧观看| 日韩av综合网| 久热爱精品视频线路一| 91久久久久久久久久| 色一区av在线| 88xx成人精品| 欧美日韩一区免费| 亚洲丝袜av一区| 国产一区二区成人| 亚洲欧美综合另类中字| 欧美日韩视频免费播放| 国产一区视频在线| 久久精品国产亚洲精品2020| 亚洲缚视频在线观看| 精品日本美女福利在线观看| 国产一区二区三区视频免费| 欧美视频在线免费| 一级做a爰片久久毛片美女图片| 亚洲成人1234| 日韩中文字幕在线观看| 国产欧美精品va在线观看| 97久久精品人人澡人人爽缅北| 日韩电视剧在线观看免费网站| 久久夜色精品国产| 久久夜色撩人精品| 久久久成人av| 国产精品视频一区二区三区四| 精品久久久久久久久久久久久| 欧美中文字幕视频在线观看| 久久久久国色av免费观看性色| 搡老女人一区二区三区视频tv| 久久久99久久精品女同性| 亚洲性视频网址| 欧美制服第一页| 国模精品系列视频| 欧美日韩午夜视频在线观看| 国产精品678| 久久综合免费视频影院| 国产在线视频2019最新视频| 精品露脸国产偷人在视频| 亚洲成人精品视频在线观看| 日韩av在线一区| 国产精品欧美日韩一区二区| 国产免费观看久久黄| 亚洲第一精品夜夜躁人人爽| 少妇高潮久久77777| 精品成人久久av| 日韩电视剧免费观看网站| 91久久久久久久久久| 尤物tv国产一区| 国产精品白丝av嫩草影院| 91精品视频网站| 久久天天躁日日躁| 欧美成人三级视频网站| 亚洲男人天堂2024| 欧美性极品xxxx娇小| 91在线直播亚洲| 日韩在线视频一区| 亚洲久久久久久久久久久| 欧美精品手机在线| 色伦专区97中文字幕| 日韩精品在线播放| 97视频人免费观看| 亚洲国产精品99久久| 一区三区二区视频| 中文字幕av一区| 日韩av不卡在线| 日韩精品在线视频美女| 国产成人精品久久二区二区91| 日韩精品久久久久久久玫瑰园| 久久久视频在线| 欧美视频专区一二在线观看| 欧美性猛交xxxxx免费看| 欧美日韩成人黄色| 成人性生交xxxxx网站| 懂色av中文一区二区三区天美| 国产做受69高潮| 欧美性色19p| 大伊人狠狠躁夜夜躁av一区| 国产精品福利久久久| 成人淫片在线看| 欧美高清videos高潮hd| xx视频.9999.com| 国产精品爽爽爽爽爽爽在线观看| 欧美色图在线视频| 亚洲一区二区久久| 久久黄色av网站| 欧美巨猛xxxx猛交黑人97人| 98精品国产高清在线xxxx天堂| 亚洲精品福利在线观看| 亚洲久久久久久久久久久| 成人激情黄色网| 在线观看精品国产视频| 欧美一乱一性一交一视频| 欧美成人精品在线| 成人黄色免费看| 国产精品va在线播放我和闺蜜| 亚洲精品久久久久久久久| 亚洲系列中文字幕| 日韩高清不卡av| 亚洲自拍偷拍第一页| 91久久精品在线| 欧美高清视频在线观看| 欧美午夜激情小视频| 美日韩在线视频| 91久久久久久国产精品| 欧美性极品少妇精品网站| 国产日韩在线视频| 久久精品91久久久久久再现| 成人伊人精品色xxxx视频| 国产女人18毛片水18精品| 91精品国产色综合久久不卡98| 日韩精品高清在线| 国产成人97精品免费看片| 韩国一区二区电影| 国产综合香蕉五月婷在线| 亚洲a成v人在线观看| 国产精品福利小视频| 亚洲xxx视频| 97国产在线观看| 国产日本欧美一区| 欧美日韩另类字幕中文| 日韩欧美国产网站| 国产美女精品视频免费观看| 日韩欧美成人免费视频| 欧美激情精品久久久久久黑人| 夜夜嗨av一区二区三区免费区| 奇米四色中文综合久久| 国产v综合v亚洲欧美久久|