C# 诊断测井

C# 诊断测井,c#,.net,event-log,event-listener,C#,.net,Event Log,Event Listener,如果以前有人问过,我会道歉 我最近在我们的C#解决方案上启用了diagnostics messagelogging。然而,我从网络上得到的例子,标准,我认为记录了太多的事件 我是否可以调整此messagelogger以仅记录系统中遇到的严重错误?我还不熟悉这个消息日志,所以如果我知道该怎么做,我就不会问你们了 我当前的设置: <system.serviceModel> <diagnostics> <!-- Enable Message Logging here

如果以前有人问过,我会道歉

我最近在我们的C#解决方案上启用了diagnostics messagelogging。然而,我从网络上得到的例子,标准,我认为记录了太多的事件

我是否可以调整此messagelogger以仅记录系统中遇到的严重错误?我还不熟悉这个消息日志,所以如果我知道该怎么做,我就不会问你们了

我当前的设置:

 <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>


所有这些当然都在我的App.config中。我只在这里使用它,而不是在我的代码或其他任何地方。这是可行的,但对我来说,保存的信息太多了。我可以保存主要/关键错误吗

C#项目,Visual Studio 2015,Windows 10。如果您需要更多,请询问。

在您的
节点中,将属性switchValue的值更改为Critical,然后这应该只记录这些事件。信息是一个事件,通常发生在跟踪的任何地方

您还可以查看此处以获得有关日志记录的更多信息:

在您的
节点中,将属性switchValue的值更改为Critical Error,然后这应该只记录这些事件。信息是一个事件,通常发生在跟踪的任何地方


您还可以查看此处以获得有关日志记录的更多信息:

设置中日志过多的问题发生在
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" />

设置中日志过多的问题出现在
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" />
<add initializeData="Diagnostics.svclog"
    type="My.Namespace.MyXmlWriterTraceListener, MyAssembly" 
    name="xml">
   ...
</add>