在app.config中有很多关于跟踪模式的教程。其中一个是http://msdn.microsoft.com/en-us/library/ty48b824%28v=vs.110%29.aspx,它应该与.Net框架的2-4.5版一起使用。
<configuration>
<system.diagnostics>
<sources>
<source name="System.Net" tracemode="includehex" maxdatasize="1024">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
</sources>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
<add name="System.Net.Cache" value="Verbose"/>
</switches>
<sharedListeners>
<add name="System.Net"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="network.log"
/>
</sharedListeners>
<trace autoflush="true"/>
</system.diagnostics>
</configuration>
在我的情况下,源属性被标记为无效/不可用。
- &GT; source name =“System.Net” tracemode =“includehex” maxdatasize =“1024”
我需要定义tracemode属性以禁用网络跟踪日志文件中的Hex输出。我搜索了varoius资源,但每个人只是说“不能,只是忽略错误”。但忽略没有帮助,只是跳过属性,使用默认值。
我无法通过代码使用跟踪,因为我需要直接跟踪无法直接定义的Net / Net.Sockets
我尝试使用两个版本的Visual Studio(2005年,2012年)和各种框架设置(2,3,4)在不同项目上进行设置,但没有任何帮助。
为什么属性标记为无效?
答案 0 :(得分:2)
我遇到了同样的问题,但我意识到无法为我们要插入的源中列出的所有程序集指定属性tracemode。
即使VS代码编辑器将此属性提升为不允许,它也可以在System.Net程序集上运行,因此,对于每个子项(在我的情况下对我来说重要)。
这是一个功能web.config的结果示例:
<system.diagnostics>
<trace autoflush="true">
</trace>
<sources>
<source name="System.Net" tracemode="protocolonly" switchValue ="All">
<listeners>
<add name="log4net" />
</listeners>
</source>
<source name="System.Net.Cache" tracemode="protocolonly" switchValue ="All">
<listeners>
<add name="log4net" />
</listeners>
</source>
<source name="System.Net.Http" tracemode="protocolonly" switchValue ="All">
<listeners>
<add name="log4net" />
</listeners>
</source>
<source name="System.Net.HttpListener" tracemode="protocolonly" switchValue ="All">
<listeners>
<add name="log4net" />
</listeners>
</source>
<source name="System.Net.Sockets" tracemode="protocolonly" switchValue ="All">
<listeners>
<add name="log4net" />
</listeners>
</source>
<source name="System.ServiceModel" propagateActivity="true" switchValue ="All">
<listeners>
<add name="log4net" />
</listeners>
</source>
<source name="System.Web.Services.Asmx" switchValue ="All">
<listeners>
<add name="log4net" />
</listeners>
</source>
</sources>
希望我的2美分帮助。
答案 1 :(得分:0)
在您发布的MSDN文章中,只需将tracemode设置为&#34; protocolonly&#34;并且不应该写入十六进制。