【发布时间】:2013-09-03 12:12:00
【问题描述】:
我有一个将日志写入 NLog 创建的文件的应用程序。 我还有另一个名为 Log Viewer 的应用程序。它可以打开和读取上面提到的日志文件。但是这里有一些问题。当日志查看器正在读取日志文件时,第一个应用程序正在写入其中,在日志查看器中无法看到某些日志行。 例如,如果第一个应用程序每毫秒写入一次日志,日志查看器就无法跟踪新的日志行并错过其中一些,你知道吗?我需要一个可以跟踪任何新日志行的在线日志查看器。我不想在每次方法调用时都读取文件中的所有文本,我只需要读取其中的新日志行
【问题讨论】:
-
您必须锁定文件。在阅读之前完成写作。
-
或者您可以使用 .net 4.0 中引入的
System.Collections.Concurrent.BlockingCollection<T>异步执行这两个操作。