【问题标题】:How do I enable logging for HttpClient in a .NET Core console app?如何在 .NET Core 控制台应用程序中为 HttpClient 启用日志记录?
【发布时间】:2019-05-16 14:01:07
【问题描述】:

.NET Core 2.2

我有一个使用 dotnet new console 创建的基本 CLI。它使用HttpClient 发出网络请求。如何查看有关这些请求的跟踪或日志记录信息?

这样的数据: https://www.stevejgordon.co.uk/httpclientfactory-asp-net-core-logging

在 .NET Framework 中,您可以打开系统跟踪:https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-configure-network-tracing

【问题讨论】:

  • 您链接到答案本身。 .NET Core 中的日志基础结构是相同的,无论是 ASP.NET Core 还是控制台应用程序。您需要检查的是如何在控制台应用程序中启用日志记录
  • 如果你真的很懒,你可以使用the generic Host 在一个调用中配置 DI、日志记录、配置等,类似于 ASP.NET Core 所做的。在主机上调用 Run 或 RunAsync 将启动所有已注册的托管服务,这意味着您必须在托管服务中实现自己的代码
  • @PanagiotisKanavos 谢谢。那个通用主机的例子让我走了。还需要通过 IHttpClientFactory 创建 HttpClient。现在看到日志输出了!

标签: .net-core console-application dotnet-httpclient


【解决方案1】:

在您的 appsettings.json 文件中会有一个类似于以下内容的对象:

  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  }

将日志级别增加到信息并再次运行您的应用程序。完成此操作后,请查看ASP.NET Core documentation 中的此页面,了解如何启用对文件或终端的日志记录。

【讨论】:

  • 这里除了 Jamie 的解决方案之外,我发现除非将 ASPNETCORE_ENVIRONMENT 环境变量设置为 Development,否则不会记录 HttpClient 调用(例如在 appsettings.json)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
相关资源
最近更新 更多