微软企业日志应用程序块 - 读取日志文件

3

我正在使用微软的日志应用程序块将我的应用程序事件记录到名为app-trace.log的文件中,该文件位于c:\ temp文件夹中。

我正在尝试找到在运行时读取此文件并在用户要求时显示它的最佳方法。

我有两个问题:

  1. 似乎框架不支持此类功能,因此我必须自己编写此阅读器。我错过了什么吗?是否有更好的方法获取这些数据(而无需在内存中缓冲或将其保存到另一个文件中)?

  2. 如果我采取我唯一剩下的选择,并实现阅读器自己,当我尝试执行以下操作时:

    System.IO.FileStream fs = new System.IO.FileStream(@"c:\temp\app-trace.log", FileMode.Open, FileAccess.Read);

    我收到“文件正在被其他进程使用c#”。可能是应用程序块锁定了文件。有没有办法以任何方式访问和读取它?

1个回答

2

您说得对,Enterprise Library不支持此功能。

如果您必须从文件中检索数据,则可以使用以下方法:

FileStream fs = new FileStream(@"c:\trace.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);


我很好奇用户为什么需要访问日志文件?是为了支持吗?如果这是一个服务器应用程序,那么我可能会认真考虑将日志记录到数据库中,然后在用户想要查看日志信息时从数据库检索数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接