首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >诊断测井

诊断测井
EN

Stack Overflow用户
提问于 2015-11-04 14:30:58
回答 2查看 614关注 0票数 0

如果之前有人问过这件事的话,我很抱歉。

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

我可以调整这个消息,以记录系统中遇到的关键错误吗?我在这个消息记录方面还是新手,所以如果我知道该怎么做,我就不会问你们了。

我目前的设置:

代码语言:javascript
复制
 <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>
代码语言:javascript
复制
<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。如果需要更多信息,请询问。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-04 14:37:15

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

您也可以在这里查看以获得有关日志记录的更多信息:从零到测井

票数 2
EN

Stack Overflow用户

发布于 2015-11-05 09:10:07

设置中出现过多日志的问题发生在System.ServiceModel.MessageLogging侦听器中;您正在告诉ServiceModel记录所有服务消息,这很好。但是,如果您只想记录ServiceModelServiceModel.MessageLogging的错误消息,则需要为您的sharedListener创建一个过滤器。

下面的诊断配置工作得很好:

代码语言:javascript
复制
<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类型:

代码语言:javascript
复制
<add initializeData="Diagnostics.svclog"
    type="My.Namespace.MyXmlWriterTraceListener, MyAssembly" 
    name="xml">
   ...
</add>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33524457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档