gpt4 book ai didi

c# - 在 .net 企业库日志中设置 'category'(到事件日志)

转载 作者:太空狗 更新时间:2023-10-29 21:37:10 28 4
gpt4 key购买 nike

我正在使用 Microsoft 企业库将一些日志写入事件日志

它可以很好地写入日志,但似乎没有在事件日志中设置类别。该类别在日志的消息正文中显示正常(如果我选择设置该类别)但事件查看器不选择该类别。

我错过了什么?


C# 源代码

LogEntry log = new LogEntry();
log.Message = "Test";
log.Categories.Add("Event");
Logger.Write(log);

网络配置

<loggingConfiguration name="Logging Application Block" tracingEnabled="true"
defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
<listeners>
<add source="TestLogSource" formatter="Text Formatter" log="TestLog"
machineName="" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
traceOutputOptions="None" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
name="Formatted EventLog TraceListener" />
</listeners>
<formatters>
<add template="Timestamp: {timestamp}&#xD;&#xA;Message: {message}&#xD;&#xA;Category: {category}&#xD;&#xA;Severity: {severity}"
type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
name="Text Formatter" />
</formatters>
<categorySources>
<add switchValue="All" name="Events">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</add>
<add switchValue="All" name="General">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events" />
<notProcessed switchValue="All" name="Unprocessed Category" />
<errors switchValue="All" name="Logging Errors &amp; Warnings">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</errors>
</specialSources>

最佳答案

EventLog 类别独立于 LogEntry 类别。所以我不认为你可以使用 LogEntry 类别来显示在 EventLog 类别字段中。

从数据的角度来看,这两种类型是不兼容的:EventLog 类别是短的,而 LogEntry 类别是字符串。是的,在事件查看器中它显示了一个字符串,但这个值是通过注册表中定义的 CategoryMessageFile 查找的。

如果您希望能够在事件查看器中进行一些过滤,您可以使用 LogEntry.EventId 属性。您可以使用您希望的任何约定来填充它。例如每个记录点的唯一事件 ID、每个层的事件 ID、每个类的事件 ID 或其他约定。

作为后备,您始终可以在事件日志条目的描述中为您的类别执行查找。

关于c# - 在 .net 企业库日志中设置 'category'(到事件日志),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1749530/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com