c# - 读取 NLog 创建的日志文件并同时写入

标签 c# .net logging nlog

我有一个将日志写入 NLog 创建的文件的应用程序。 我还有另一个名为 Log Viewer 的应用程序。它可以打开和读取上面提到的日志文件。但是这里有一些问题。虽然日志查看器正在读取日志文件,并且第一个应用程序正在写入日志文件,但在日志查看器中看不到某些日志行。 例如,如果第一个应用程序每毫秒写入日志,日志查看器就无法跟踪新的日志行并错过其中的一些,你知道吗?我需要一个可以跟踪任何新日志行的在线日志查看器。我不想在每次方法调用时都读取文件中的所有文本,我只需要读取其中的新日志行

最佳答案

知道日志行是新行的唯一方法是知道上次读取文件中的哪个位置(例如“int lastposition=0;”)。 您需要从该位置读取直到文件末尾。 “文件结尾”的位置与文件长度相同。当文件 block 被读取时;您在查看器中显示您阅读的内容,并将最后位置保存到变量 lastposition 中;下次需要开始的地方,观众正在阅读。

但如果查看者无法打开文件……那就是另一回事了。

关于c# - 读取 NLog 创建的日志文件并同时写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592040/

相关文章:

c# - 如何从 C# 调用 MSBuild

java - 是否有专为 Java 5 或更高版本设计的 log4j 或 commons 日志记录扩展或其他日志记录框架?

c# - 字节(1024)到字符串转换(1 KB)?

c# - 如何将多个 RichTextBox 内容写入一个 RTF 文件并保留每个 RichTextBox 的字体格式

c# - 桌面应用程序中本地数据库的 C# 连接字符串

c# - Lambda 表达式转换

.net - 如何跟踪和消除 session 滥用?

c# - 将 Excel 转换为 xml

hibernate - Tapestry apache 错误 http 500 日志

java - 默认情况下如何将java Logger输出到文件