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

本文关键字:日志 读取 文件 | 更新日期: 2023-09-27 18:19:06

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

BackgroundWorker,定时器,只读取日志文件的新行?

然而,当我写日志条目时,我得到file in use异常。

帮助

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

当我做这样的文件访问/操作时,我通常要注意两件事。

首先,我使用以下代码(参见FileShare枚举):

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。在我的答案中第一次读取而不是更合适的filesshare . readwrite。

您需要确保您的日志读取代码以读写模式打开文件。请参阅另一篇文章的精彩答案,以获得完整的解释:我如何使用。net StreamReader打开已打开的文件?