使用.net的跟踪诊断来记录wcf消息

首先在项目的config文件中定义以下结点:

复制代码
<system.diagnostics>
  <sources>
    <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
      <listeners>
        <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="D:\LogFiles\wcf.svclog" />
      </listeners>
    </source>
  </sources>
  <trace autoflush="true" />
</system.diagnostics>
复制代码

上面主要几个选项有source的name属性(记录的来源)、switchValue属性(记录内容的级别),还有listeners的initialzeData(记录到哪里)

----

在system.serviceModel结点中添加diagnostics结点,添加messageLogging,设置相关属性

复制代码
<system.serviceModel>
  <diagnostics>
    <messageLogging logEntireMessage="true"
                    maxMessagesToLog="300"
                    logMessagesAtServiceLevel="false"
                    logMalformedMessages="false"
                    logMessagesAtTransportLevel="true" />
  </diagnostics>
</system.serviceModel>
复制代码

这样就可以利用.net自身的跟踪记录器了。

----

查看也有现成的工具,这个工具在

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools

注意这是64位系统,32位就是不用加x86的那个文件夹。

然后在Windows目录下可能会有好多(vX.X)的文件夹。。。不同的系统应该不同,我这个win8.1是8.0a文件夹

后面有可能是直接在bin目录里,反正我这个是上面那个文件夹

----

总之找到SvcTraceViewer.exe这个程序就行了,它可以方便的查看记录的日志。

服务跟踪查看器工具可与两种文件类型关联:.svclog 和 .stvproj。 在命令行中,可以使用两个参数来注册和注销文件扩展名。
/register:将文件扩展名“.svclog”和“.stvproj”注册为与 SvcTraceViewer.exe 相关联
/unregister:注销文件扩展名“.svclog”和“.stvproj”与 SvcTraceViewer.exe 的关联

----

具体内容请参考MSDN:http://msdn.microsoft.com/zh-cn/library/ms732023.aspx

----

补充:启用该跟踪诊断,WCF需要以管理员身份运行。

posted @   不是豆豆  阅读(390)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
友情链接:迷途


点击右上角即可分享
微信分享提示