如何写日志文件时,不需要关闭文件在运行的应用程序



我们在c#中有静态类Logger,其中日志文件在应用程序启动时初始化。日志文件在每个512字节之后进行回滚(创建新的日志文件)。现在的问题是,我无法在外部打开当前的日志文件,因为它已经在我的应用程序中打开了。

我不明白如何处理这个问题。如何打开当前打开的日志文件,同时不应损害当前对文件的操作。

谢谢。

为了给您一个准确的答案,我需要查看日志记录器的代码。但我会解释这个想法。假设日志记录器使用System.IO.File.Open()方法创建/打开日志文件以进行写入。使用Open()方法的重载,允许您指定FileShare参数(这里是链接)并为该参数指定FileShare.Read。这将允许应用程序以只读模式打开日志文件,因此它不会损害日志操作。

使用FileShare.ReadWrite在您的情况下是至关重要的。这应该是你的诀窍:

using (FileStream stream = File.Open("filePath", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    using (StreamReader reader = new StreamReader(stream))
    {
        while (!reader.EndOfStream)
        {
            // do your stuff here
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新