Joe*_*oeB 2 .net asp.net logging frameworks
我正在调试一些意外的行为,在跟踪.NET框架时,我看到一堆这样的东西:
if (Logging.On) {
Logging.PrintInfo(Logging.Web, this, SR.GetString(SR.net_log_n_certs_after_filtering, filteredCerts.Count));
…
}
Run Code Online (Sandbox Code Playgroud)
但是(正如默认预期的那样)执行步骤就在这些上面.有没有办法打开日志记录?或者这只是框架开发人员在构建框架的特殊构建时可以做的事情?
反射周围显示Logging.On由'flag'启用
s_WebTraceSource = new NclTraceSource("System.Net");
s_HttpListenerTraceSource = new NclTraceSource("System.Net.HttpListener");
s_SocketsTraceSource = new NclTraceSource("System.Net.Sockets");
s_CacheTraceSource = new NclTraceSource("System.Net.Cache");
try
{
flag = ((s_WebTraceSource.Switch.ShouldTrace(TraceEventType.Critical) || s_HttpListenerTraceSource.Switch.ShouldTrace(TraceEventType.Critical)) || s_SocketsTraceSource.Switch.ShouldTrace(TraceEventType.Critical)) || s_CacheTraceSource.Switch.ShouldTrace(TraceEventType.Critical);
}
Run Code Online (Sandbox Code Playgroud)
这意味着它正在使用标准跟踪,只是检查是否至少正在监视"关键"级别.有关如何使用它的示例可以在本MSDN文章的"调试套接字应用程序"部分中找到,如下所示:
<configuration>
<system.diagnostics>
<sources>
<source name="System.Net.Sockets">
<listeners>
<add name="Sockets"/>
</listeners>
</source>
</sources>
<switches>
<add name="System.Net.Sockets" value="31" />
</switches>
<sharedListeners>
<add name="Sockets" type="System.Diagnostics.TextWriterTraceListener"
initializeData="Sockets.log"/>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)
正如文章所解释的那样,开关值是这五个值的按位OR:
如果你或者所有这些(0x10 | 0x8 | 0x4 | 0x2 | 0x1)你得到0x1F,如上所示十进制为"31".
使用应用程序配置文件设置的详细信息,可以发现在这里.它应该只是创建一个app.config或web.config文件,类似于上面的那个你将使用的源文件.
| 归档时间: |
|
| 查看次数: |
480 次 |
| 最近记录: |