我正在使用MS日志记录应用程序块将我的应用程序事件记录到名为app-trace.log的文件中,该文件位于c:\ temp文件夹中。
我正在尝试找到在运行时读取此文件的最佳方法,并在用户请求时显示该文件。
我有两个问题:
框架似乎不支持这种功能,因此我必须自己编写这个阅读器。我在这里错过了什么吗?有没有更好的方法来获取这些数据(没有在内存中缓冲它或将其保存到另一个文件中)?
如果我正在为我留下唯一的选择,并且在我尝试的时候自己实施读者:
System.IO.FileStream fs = new System.IO.FileStream(@"c:\temp\app-trace.log", FileMode.Open, FileAccess.Read);
我正在“另一个进程c#正在使用该文件”。该文件可能被应用程序块锁定。有无法以任何方式访问和阅读它吗?
答案 0 :(得分:2)
您是正确的,Enterprise Library不支持此功能。
如果您必须从文件中检索数据,那么您应该可以使用以下方法来执行此操作:
FileStream fs = new FileStream(@"c:\trace.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
我很好奇为什么用户需要访问日志文件?是支持吗?如果这是一个服务器应用程序,那么我可能会认真考虑登录到数据库,然后在用户想要查看日志信息时从数据库中检索数据。