首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

写日志的时候如何实现如果日志文件被打开话的话,程序仍然可以写入

2012-01-01 
写日志的时候怎么实现如果日志文件被打开话的话,程序仍然可以写入?程序在运行的时候要往日志里记录日志,但

写日志的时候怎么实现如果日志文件被打开话的话,程序仍然可以写入?
程序在运行的时候要往日志里记录日志,但是如果正好这个时候日志文件被打开查看程序就会报错,请问怎么解决这个问题?

[解决办法]
像log4net之类的日志组件的话,你即使带开了日志文件,也可以正常写入,有一定的缓存机制,我没具体看过代码,但楼主可以用用看.
[解决办法]
你的日志文件是什么类型的哦?
文本的?如txt的或是存数据库的?如果是文本的,那注意一下打开的时候读锁跟写锁的设置 ,
如果是数据库的,一般它是直接读的副本,应该不会出现这种问题

[解决办法]
我以前写的一个日志文件,写文件的代码如下:你参考一下。文件格式没关系,主要是你写的过程
public void WriteToFile()
{
while (!Stopped)
{
if (MsgQueue.Count == 0)
{
Thread.Sleep(50);
continue;
}
string strMsg = "";
lock (MsgQueue.SyncRoot)
{
strMsg = System.Convert.ToString(MsgQueue.Dequeue());
}
StreamWriter writer = new StreamWriter(FileName, true);
writer.WriteLine(strMsg);
writer.Close();
}
}
[解决办法]
建立缓存机制

热点排行