0

我正在尝试从 Enterprise Library Semantic Logging Application Block 获取 SemanticLogging-svc.exe 来监听我的自定义事件源的事件并将它们转储到控制台。

这适用于我的本地主机和开发服务器,但我没有得到生产服务器的任何输出。所以我正在寻找为什么会这样的答案。

控制台输出很简单:

事件跟踪会话前缀:Microsoft-SemanticLogging-Etw

接收器名称:ConsoleEventSink
事件来源:
名称: b3b81ce4-1cb6-512c-f02f-46aefff0344d
INNOMATE-HR-Security,级别:LogAlways,MatchAnyKeyword:无

服务开始。

我的 SemanticLogging-svc.xml 看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns="http://schemas.microsoft.com/practices/2013/entlib/semanticlogging/etw"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://schemas.microsoft.com/practices/2013/entlib/semanticlogging/etw SemanticLogging-svc.xsd">
  <traceEventService/>
  <sinks>
    <consoleSink name="ConsoleEventSink">
      <sources>
        <eventSource name="INNOMATE-HR-Security" level="LogAlways"/>
      </sources>
      <eventTextFormatter header="+=========================================+"/>
    </consoleSink>
  </sinks>
</configuration>

Windows 事件日志中没有事件。

我也尝试过使用 rollingFlatFileSink。这会在生产服务器上产生一个空文件,但可以在其他系统上运行。

查看 PerfMon > Data Collector Sets > Event Trace Sessions,我看到 Microsoft-SemanticLogging-Etw-ConsoleEventSink 正在运行。

使用 PerfView,我的事件被正确收集。

有问题的服务器是较旧的服务器,运行 Windows Server 2008 R2。

是否有一些我遗漏的设置,或者是否有人对为什么这不起作用有另一种解释?

提前致谢。

4

1 回答 1

0

SemanticLogging-svc 服务的身份似乎没有创建 ETW 会话、注册提供程序或从 ETW 会话读取事件所需的权限。

将 SemanticLogging-svc 服务实例的标识添加到Performance Log UsersWindows 组。

您是否尝试过使用与您相同的帐户PerfView或管理员权限运行 SemanticLogging-svc 服务?

于 2016-05-16T14:50:24.913 回答