Mar*_*tin 4 performance wcf logging
我有一个WCF服务,目前正在生产中.代码性能不是我们希望它们的位置,我们无法在Staging环境中重现.
我想知道是否可以记录对服务和服务进行的每个方法调用.基本上我想要一个所有调用和时间戳的顺序列表(我们的代码不是多线程的).
有没有办法实现这一点,而无需检测二进制文件.我们可以更改web.config中system.diagnostic节点下的跟踪级别吗?
您是否在配置文件中配置了跟踪?这是一篇关于这个主题的好文章.
以下是您可以根据需要使用和修改的示例配置:
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="ServiceModel"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\ServiceModel.svclog" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="MessageLogging"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\MessageLogging.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="True"
logMalformedMessages="False"
logMessagesAtServiceLevel="True"
logMessagesAtTransportLevel="False"
maxMessagesToLog="10000"
maxSizeOfMessageToLog="10000" />
</diagnostics>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
使用服务跟踪查看器工具(SvcTraceViewer.exe)查看生成的日志.