如何在日志文件中读取日志

时间:2013-06-19 12:40:11

标签: c#

根据以下帖子中发布的解决方案,我创建了用于读取日志文件的表单

BackgroundWorker & Timer, reading only new lines of a log file?

但是在编写日志条目时我遇到file in use异常。

帮助

2 个答案:

答案 0 :(得分:1)

您需要确保日志阅读代码以ReadWrite模式打开文件。有关完整说明,请参阅此其他帖子的优秀答案:How do I open an already opened file with a .net StreamReader?

答案 1 :(得分:1)

当我进行这样的文件访问/操作时,我通常会处理两件事。

首先,为了阅读,我使用以下代码(参见FileShare enumeration):

using (Stream s = File.Open(path, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite)) { ... }

其次,我通常会编写一个while循环来打开文件进行读/写(草稿代码):

int tries=0;
while (tries < 10) {
    try {
        // try to open file for your operation
        break;
    } catch (IOException) {
        tries++;
        Thread.Sleep(200);
    }
}

编辑:我在答案中第一次使用FileShare.Read而不是更合适的FileShare.ReadWrite。现在我已经纠正了它。