如何将我自己的消息发送到WCF跟踪文件?
所以我现在在控制台应用程序上运行自己托管的WCF服务,但在IIS上也有。 问题是我正在学习理解,当然,现在我想更进一步,写我自己的消息,包括在跟踪文件中 我认为这应该很容易,但没有写入跟踪文件 我错过了什么 我的配置是这样的:如何将我自己的消息发送到WCF跟踪文件?,wcf,trace,Wcf,Trace,所以我现在在控制台应用程序上运行自己托管的WCF服务,但在IIS上也有。 问题是我正在学习理解,当然,现在我想更进一步,写我自己的消息,包括在跟踪文件中 我认为这应该很容易,但没有写入跟踪文件 我错过了什么 我的配置是这样的: <configuration> <system.diagnostics> <sources> <source name="System.ServiceModel.MessageLogging" switchValue=
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel" switchValue="Verbose,ActivityTracing"
propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\_sebastian\dev\gomez\WCFTraceTest\Server\App_tracelog.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true"/>
</diagnostics>
如您所见,您需要在跟踪上调用Flush以将其刷新到侦听器(或启用自动刷新)。您正在这样做吗?如您所见,您需要在跟踪上调用Flush以将其刷新到侦听器(或启用自动刷新)。您正在这样做吗?将您自己的源添加到配置文件中:
<source name="MyNameSpace.MySource" switchValue="Verbose,ActivityTracing"
propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
您可以在每次跟踪时调用Flush,但我不建议这样做。这些类经过优化以尽可能少地中断代码流,这意味着跟踪可能不会立即显示在文件中,因为对文件的实际写入发生在另一个线程上。但是,您可以在应用程序关闭期间调用Flush。将您自己的源添加到配置文件:
<source name="MyNameSpace.MySource" switchValue="Verbose,ActivityTracing"
propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
您可以在每次跟踪时调用Flush,但我不建议这样做。这些类经过优化以尽可能少地中断代码流,这意味着跟踪可能不会立即显示在文件中,因为对文件的实际写入发生在另一个线程上。但是,您可以在应用程序关闭期间调用Flush。不,不是这样。。。我试过,运气也一样。请注意,如果调试服务,则只有一个名为System.Diagnostics.DefaultTraceListener的侦听器,而ServiceModelListener不在其中:(我如何加载它?不,不是这样……我也尝试过,运气也一样。请注意,如果我调试我的服务,我只有一个名为System.Diagnostics.DefaultTraceListener的侦听器,ServiceModelListener不在那里:(我如何加载它?