如何为HttpClient调用配置网络跟踪Dotnet核心?

时间:2019-04-02 14:50:55

标签: c# .net-core dotnet-httpclient .net-standard system.diagnostics

根据参考文档,位于https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-configure-network-tracing

我们可以在web.config或任何其他配置文件中进行设置,我们可以获得详细的system.net跟踪,HttpClient调用的数据包跟踪以及HttpClient调用中的任何类型的问题跟踪,无论是证书,TLS还是其他任何东西。

但是,我们是否可以在Web应用程序或控制台应用程序/库中使用类似的dotnet核心/标准实现?

dotnet框架的配置:

<configuration>  
  <system.diagnostics>  
    <sources>  
      <source name="System.Net" tracemode="includehex" maxdatasize="1024">  
        <listeners>  
          <add name="System.Net"/>  
        </listeners>  
      </source>  
      --------------
----------------------

2 个答案:

答案 0 :(得分:0)

所有内容在文档https://docs.microsoft.com/fr-fr/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.2#logging中都有说明。

总而言之,您需要在appsettings.json中设置“跟踪”日志记录级别,并且应该看到日志(如果您像这样注册HttpClient:https://docs.microsoft.com/fr-fr/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.2#basic-usage):

"Logging": {
    "LogLevel": {
        "Default": "Trace"
    }
}

答案 1 :(得分:0)

.NET Core使用EventSource记录这些事件。在Windows上,事件源使用Event Tracing for Windows (ETW),因此可以使用所有与之配合使用的工具来记录和读取跟踪输出。在Linux上,LTTNG用于记录事件。

Microsoft的CoreFX信息库contains documentation for Windows,介绍如何使用PerfViewlogman调试网络跟踪。他们的CoreCLR存储库包含documentation on capturing traces on Linux,它也很有用。

Microsoft正在努力以某种方式统一跨平台的体验。目前,这种支持似乎正在通过dotnet-trace command发生。

您没有直接提到ASP.NET Core,所以我想您的问题并非特定于此,但请注意,正如Alexandre指出的那样,tracing can be configured可能会提供您所需要的部分或全部内容