我需要非常簡單的文本文件記錄。我只會追加線條。從不改變現有的或刪除它們。如果它是XML文件,綁定到網格以查看它們會更容易。但文本文件和xml文件仍然存在問題,因爲它們在文件系統中。在線程安全的aspnet中記錄XML或文本文件
在web服務器中會附加日誌條目時出現文件鎖定。也可能在閱讀時所以這個方法必須是線程安全的。同時,多個實例可以將日期寫入文件。
我知道有一些第三方工具,如serilog等,但我想知道:
我怎麼可以追加(不改變)線不用注意文件鎖定到文本文件(或XML文件)?
如果我讀取XML文件到數據集,添加一個新的行並保存爲XML我會使用其他實例所做的其他條目。
如果我用streamwriter打開一個文本文件並向它附加一行,其他實例將會出現鎖定錯誤。
我再次從管理面板獲取日誌列表,文件將被鎖定,實例不會追加日誌。
什麼想法?
*無關於文件鎖*你不能。絕對不能。不。不可以。您可以做的是創建一個在後臺運行的單個線程,該線程從集合中獲取項目並將其寫入磁盤,並以讀/寫方式鎖定對該集合的訪問。或者只是使用諸如NLog之類的多線程安全日誌框架之一。 – Will 2014-10-05 16:30:23