我正在尝试从 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。
是否有一些我遗漏的设置,或者是否有人对为什么这不起作用有另一种解释?
提前致谢。