簡體   English   中英

如何在運行應用程序時不需要關閉文件時寫日志文件?

[英]How to write log file when no need to close file in running application?

我們在C#中有靜態類Logger ,其中日志文件在應用程序啟動時初始化。 512字節后,日志文件將回滾(創建新日志文件)。 現在問題是,我無法在外部打開當前日志文件,因為它已在我的應用程序中打開。

我無法理解如何處理這個問題。 如何打開當前打開的日志文件,同時不應該損害當前的文件操作。

謝謝。

在您的情況下,使用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
        }
    }
}

為了給您准確的答案,我需要查看記錄器的代碼。 但我會解釋這個想法。 假設記錄器使用System.IO.File.Open()方法創建/打開日志文件進行寫入。 使用Open()方法的重載,該方法允許您指定FileShare參數( 此處為鏈接 )並為該參數指定FileShare.Read 這將允許應用程序以只讀模式打開日志文件,因此不會損害日志記錄操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM