Microsoft企业日志记录应用程序块 - 读取日志文件

时间:2009-12-29 22:48:35

标签: c# .net logging enterprise-library

我正在使用MS日志记录应用程序块将我的应用程序事件记录到名为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 个答案:

答案 0 :(得分:2)

您是正确的,Enterprise Library不支持此功能。

如果您必须从文件中检索数据,那么您应该可以使用以下方法来执行此操作:

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


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