【问题标题】:Is there a way to do on demand flushing of WCF trace?有没有办法按需刷新 WCF 跟踪?
【发布时间】:2010-12-24 03:20:12
【问题描述】:

就像有一个刷新 IIS7 日志的命令:

netsh http flush logbuffer

我想知道是否有类似的命令可以按需刷新 WCF 跟踪日志。

【问题讨论】:

    标签: wcf trace flush


    【解决方案1】:

    一种方法是重置 IIS,但这只是在开发者网络上调试时的一个选项。

    【讨论】:

    • 感谢您的回复,这是我目前发现的唯一信息。
    • 已经有一段时间了,从技术上讲,你的答案是正确的,所以我接受了。
    【解决方案2】:

    .config 文件中设置autoflush="true" 可确保在每次跟踪后跟踪源刷新到磁盘。

    以下是带有autoflush="true"的示例配置文件:

    <configuration>
     <system.diagnostics>
      <sources>
       <source name="System.ServiceModel" switchValue="Warning, ActivityTracing"
                     propagateActivity="true">
         <listeners>
          <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
                          initializeData="e2eTraceTest.xml" />
        </listeners>
       </source>
      </sources>
    
      <trace autoflush="true" />
    
     </system.diagnostics>
    </configuration>
    

    此外,如果您愿意将 WCF 跟踪存储在数据库中,您可能需要查看这篇文章:

    这将允许您实时查看 WCF 跟踪,而无需刷新它。

    【讨论】:

    • @Piotr:您可能还想考虑autoflush=true 方法,如答案中所述。
    • 这就是我最终所做的。但是,我宁愿使用可以节省资源并允许按需刷新和缓冲区溢出(和/或低资源使用)的缓冲。我只是认为从服务器的角度来看这将是有益的。
    • @Piotr:是的,我同意你的看法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多