3

我正在使用 Enterprise Library 5 中的 Logging Application Block 尝试登录平面文件和事件日志。我的配置如下所示:

在此处输入图像描述

我正在使用此代码写入日志:

Logger.Write("message", "General1");
Logger.Write("message", "General2");

问题是,我的平面文件记录正常,但事件日志从不显示日志条目。我在那里制作了一个自定义视图来过滤“企业库日志记录”。

如何使用 Ent lib 5 在事件查看器日志中生成条目?

谢谢。

绒球。

4

2 回答 2

3

我认为这里可能会发生两件事:

  1. 日志记录正常,但您的自定义过滤器不正确
  2. 日志记录不起作用

让我们保持乐观并假设日志记录正在工作。

日志记录正在工作

您已将 EventLogTraceListener 配置为记录到使用MyLog“企业库日志记录”源调用的事件日志。也许自定义过滤器配置为按日志过滤,而不是搜索 MyLog?仔细检查您的过滤器,并检查应用程序和服务日志下是否确实有一个名为 MyLog 的日志。

不过,如果我猜的话,那可能不是问题所在。

日志记录不工作

让我们假设日志记录不起作用。它不起作用的最可能原因是您没有创建事件日志的权限。我还注意到 Logging Errors & Warnings 部分没有配置监听器。设置 Logging Errors & Warnings 以使用跟踪侦听器始终是一个好主意(我更喜欢平面文件跟踪侦听器,因为它是最简单的一种,因此出错的可能性很小)。
因此,在您的情况下,我会将其设置为使用您已经设置的“平面文件跟踪侦听器”:

 <specialSources>
   <allEvents switchValue="All" name="All Events" />
   <notProcessed switchValue="All" name="Unprocessed Category" />
   <errors switchValue="All" name="Logging Errors &amp; Warnings">
    <listeners>
     <add name="Flat File Trace Listener" />
    </listeners>
   </errors>
  </specialSources>

现在,如果您重新运行程序,您可能会在 consoletrace.log 中看到一条错误消息。

如果权限是问题,通常的解决方案是在安装期间使用具有适当权限的帐户创建事件日志及其来源。例如,以管理员身份记录消息以设置您的日志和类别。

于 2011-09-23T15:23:02.713 回答
0

I know this is an older question now, but in order to use the event log, the event source must be created first (by a user having Administrative Privileges). In addition, if you are trying to use this within a web site, the NETWORK SERVICE account must be granted access to write to the event log. This site will help: http://msdn.microsoft.com/en-us/library/ms998320.aspx

于 2012-08-01T14:56:37.853 回答