【问题标题】:Logging from .NET framework internals (Logging.On)从 .NET 框架内部进行日志记录 (Logging.On)
【发布时间】:2010-07-06 18:52:48
【问题描述】:

我正在调试一些意外行为,在跟踪 .NET 框架时,我看到了一堆这样的东西:

        if (Logging.On) { 
            Logging.PrintInfo(Logging.Web, this, SR.GetString(SR.net_log_n_certs_after_filtering, filteredCerts.Count));
             …
        }

但是(默认情况下)执行步骤就在这些之上。有没有办法打开日志记录?或者这只是框架开发人员在构建框架时可以做的事情?

【问题讨论】:

    标签: .net asp.net logging frameworks


    【解决方案1】:

    反射显示 Logging.On 是由 'flag' in 启用的

    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);
    }
    

    这意味着它正在使用标准跟踪,并且只是检查是否至少正在监视“关键”级别。可以在MSDN article 的“调试套接字应用程序”部分中找到如何使用它的示例,如下所示:

    <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>
    

    正如文章所解释的,开关值是这五个值的按位或:

    • 网络流量 (0x10)
    • 方法进入和退出 (0x8)
    • 警告 (0x4)
    • 错误 (0x2)
    • 严重事件 (0x1)。

    如果你对所有这些 (0x10 | 0x8 | 0x4 | 0x2 | 0x1) 进行 OR 运算,你会得到 0x1F,如上所示,它是十进制的“31”。

    有关使用应用程序配置文件进行设置的详细信息,请参阅here。只需为您将使用的源创建一个类似于上述文件的 app.config 或 web.config 文件即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 2019-02-21
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      相关资源
      最近更新 更多