.net 自带的日志功能 System.IO.Log (写入)

在.net 4.0中 framework自带了一组写日志的类,都位于System.IO.Log 命名空间下

其中LogRecordSequence 提供了对公用日志文件系统 (CLFS) 日志的实现(xp不支持...)

FileRecordSequence提供了对普通日志文件的支持

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
string logName = " aaa.txt " ;
string logContainer = " MyExtent1 " ;
int containerSize = 1024 * 1024 ;
LogRecordSequence sequence
= new LogRecordSequence(logName,
FileMode.CreateNew,
FileAccess.ReadWrite,
FileShare.None);
sequence.LogStore.Extents.Add(logContainer, containerSize);

// 准备写日志
string str = " 日志内容 " ;
Encoding enc
= Encoding.Unicode;
byte [] array = enc.GetBytes(str);
ArraySegment
< byte > [] segments = new ArraySegment < byte > [ 1 ];
segments[
0 ] = new ArraySegment < byte > (array);
var list
= Array.AsReadOnly < ArraySegment < byte >> (segments);

// 这句话就是写日志了
sequence.Append(list, SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);

Console.ReadLine();
return ;

 

  

LogRecordSequence 的性能非常好,

注:在我的机器上(windows 2008) 测试写入10000条耗时0.03秒 .(不要每写一条都Flush : 设置参数 RecordAppendOptions.None)

 

PS: 可以将 RetryAppend 设置为true 开启功能: 文件满的时候,自动生成另一个文件写入(如果不设置 就会抛出日志已满的异常)

PS: 不支持自动时间格式的文件名,很郁闷

转载于:https://www.cnblogs.com/PurpleTide/archive/2011/01/18/1937416.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值