【问题标题】:Duplicate log lines in vscode when debugging ASP.NET Core app调试 ASP.NET Core 应用程序时 vscode 中的重复日志行
【发布时间】:2020-09-13 16:22:25
【问题描述】:

当使用默认模板之一调试典型的 ASP.NET Core 应用程序时,我在 DEBUG CONSOLE 中遇到重复的日志行,例如:

这非常烦人,因为它通过不断切换缩进和重复使日志难以阅读。我没有在 Program.cs 和 Startup.cs 中配置任何日志记录,所以默认配置是这样做的。

为什么会这样,我可以删除它吗?

我认为可能根本原因是因为 CreateDefaultBuilder(...) 添加了调试和控制台日志记录。所以我试着自己动手:

            .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                logging.AddConsole();
                //logging.AddDebug();
                logging.AddEventSourceLogger();
            })

但这没有任何效果。

【问题讨论】:

  • 据我记忆,这是默认的控制台日志格式。第一行是日志的概述,以下几行是扩展的详细版本。如果您不喜欢这种格式,请切换到 Serilog、NLog 或您喜欢的记录器
  • 不正确。重复日志是由于除了调试日志之外,控制台日志还被定向到调试控制台。

标签: asp.net-core .net-core visual-studio-code


【解决方案1】:

重复的日志是由于

控制台日志记录

info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:5001

除了在vscode中默认被定向到调试控制台

调试日志记录。

Microsoft.Hosting.Lifetime: Information: Now listening on: https://localhost:5001

您可以使用 launch.json 单独的控制台日志记录

"console":"integratedTerminal"

或者当您尝试删除调试日志时。 注意你需要添加 ClearProviders()

.ConfigureLogging((hostingContext, logging) =>
{
      logging.ClearProviders();
      logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
      logging.AddConsole();
      //logging.AddDebug();
      logging.AddEventSourceLogger();
})

另请参阅 Remove console and debug loggers in ASP.NET Core 2.0 when in production mode

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 2016-07-17
    • 2023-04-08
    • 1970-01-01
    • 2017-09-23
    • 2018-02-16
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多