如果之前有人问过这件事的话,我很抱歉。
最近,我在C#解决方案上启用了诊断消息。然而,我从网络上得到的例子,标准,我认为,有太多的事件被记录。
我可以调整这个消息,以记录系统中遇到的关键错误吗?我在这个消息记录方面还是新手,所以如果我知道该怎么做,我就不会问你们了。
我目前的设置:
<system.serviceModel>
<diagnostics>
<!-- Enable Message Logging here. -->
<!-- log all messages received or sent at the transport or service model levels >-->
<messageLogging logEntireMessage="true" maxMessagesToLog="300" logMessagesAtServiceLevel="true" logMalformedMessages="true" logMessagesAtTransportLevel="true" />
</diagnostics><system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\Diagnostics.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml" />
</sharedListeners>
<trace autoflush="true" />
所有这些当然都在我的App.config中。我只在这里使用它,不在我的代码或其他地方使用。这很管用,但对我来说,保存的信息太多了。我能不能保存主要的/关键的错误?
C#项目,Visual 2015,Windows 10。如果需要更多信息,请询问。
发布于 2015-11-04 14:37:15
在您的<source>节点中,将属性switchValue的值更改为switchValue,错误则应该只记录这些事件。信息是一个事件,通常发生在任何地方的跟踪。
您也可以在这里查看以获得有关日志记录的更多信息:从零到测井
发布于 2015-11-05 09:10:07
设置中出现过多日志的问题发生在System.ServiceModel.MessageLogging侦听器中;您正在告诉ServiceModel记录所有服务消息,这很好。但是,如果您只想记录ServiceModel和ServiceModel.MessageLogging的错误消息,则需要为您的sharedListener创建一个过滤器。
下面的诊断配置工作得很好:
<system.diagnostics>
<sources>
<source name="System.ServiceModel">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<switches>
<add name="System.ServiceModel" value="Critical, Error"/>
</switches>
<sharedListeners>
<add initializeData="Diagnostics.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="Critical, Error"/>
</add>
</sharedListeners>
<trace autoflush="true" />
<filter />元素告诉侦听器只编写具有临界或错误EventType的日志。这里的假设是,如果消息有问题,它将被错误事件类型标记。
此外,您还可以创建一个滚动或每日 XmlWriterTraceListener,分别根据文件大小或每天启动一个新日志。
只需更改sharedListener类型:
<add initializeData="Diagnostics.svclog"
type="My.Namespace.MyXmlWriterTraceListener, MyAssembly"
name="xml">
...
</add>https://stackoverflow.com/questions/33524457
复制相似问题