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

解决方案 »

  1.   

    像log4net之类的日志组件的话,你即使带开了日志文件,也可以正常写入,有一定的缓存机制,我没具体看过代码,但楼主可以用用看.
      

  2.   

    你的日志文件是什么类型的哦?
    文本的?如txt的或是存数据库的?如果是文本的,那注意一下打开的时候读锁跟写锁的设置 ,
    如果是数据库的,一般它是直接读的副本,应该不会出现这种问题
      

  3.   

    我以前写的一个日志文件,写文件的代码如下:你参考一下。文件格式没关系,主要是你写的过程
    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();
                }
            }
      

  4.   

    应该不会啊,你是用什么打开的?notepad?这个打开就跟文件脱离关系了,它是往内存里加的