【问题标题】:Microsoft Enterprise Logging Application Block - Reading Log FileMicrosoft 企业日志记录应用程序块 - 读取日志文件
【发布时间】:2010-12-30 22:46:13
【问题描述】:

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

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

我有 2 个问题:

  1. 好像框架不支持这种功能,所以我必须自己写这个阅读器。我在这里错过了什么吗?有没有更好的方法来获取这些数据(不将其缓存在内存中或将其保存到另一个文件中)?

  2. 如果我要选择剩下的唯一选择,并自己实现阅读器,那么当我尝试这样做时:

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

    我收到“文件正在被另一个进程 c# 使用”。可能该文件已被应用程序块锁定。有什么办法可以访问和阅读吗?

【问题讨论】:

    标签: c# .net logging enterprise-library


    【解决方案1】:

    您是正确的,企业库不支持此功能。

    如果您必须从文件中检索数据,那么您应该可以使用以下方法来完成:

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


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      相关资源
      最近更新 更多