在 vscode 调试控制台中禁用符号加载的详细记录

Disable verbose logging of symbol loading in vscode debug console

当 运行 我的 webapp(在 vscode 中)时,调试控制台充满了像这样的行:

Loaded '/foo/bar/dotnet/shared/Microsoft.NETCore.App/2.2.4/System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

The thread 123 has exited with code 0 (0x0).

我认为这与 appsettings.json 文件中的日志过滤有关,但这些不属于我可以禁用的任何类别。

这很烦人 - 我该如何禁用它?

这些日志由 VS Code 管理。您可以在 .vscode 目录下的 launch.json 文件中禁用它们。您可以在 configurations 节点下添加以下节点以禁用模块加载消息:

"logging": {
    "moduleLoad": false
}

还有更多可用选项,例如 exceptionsprogramOutput,请查看 Intellisense 以了解所有可用选项。

我找到这个答案是为了寻找与原始问题相同的东西。 提供的答案是正确的,但我不明白我需要把它放在哪里。所以我决定添加我自己的答案,希望能指导其他处于相同情况的人...

您只需将以下代码添加到您的解决方案(如果您不使用解决方案,则添加项目文件)。

"logging": {
    "moduleLoad": false
}

因为我不清楚它需要添加到哪里(在我的“配置”节点上有两个单独的区域,名为“name”:“.NET Core Launch(控制台)”和“name”:“ .NET Core Attach"),我想 post 我的整个配置以使其更加清晰。

"version": "0.2.0",
"configurations": [
    {
        "name": ".NET Core Launch (console)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "build",
        "program": "${workspaceFolder}/bin/Debug/netcoreapp2.2/example.dll",
        "args": [],
        "cwd": "${workspaceFolder}",
        "console": "internalConsole",
        "stopAtEntry": false,
        "logging": {
            "moduleLoad": false
        }
    },
    {
        "name": ".NET Core Attach",
        "type": "coreclr",
        "request": "attach",
        "processId": "${command:pickProcess}"
    }
]

答案正确地解释了一般情况下如何禁用日志记录(通过编辑 .vscode/launch.json)。

但这不适用于从 codelens 启动的调试会话:

在这种情况下编辑 .vscode/settings.json:

"csharp.unitTestDebuggingOptions": {
  "logging": { "moduleLoad": false }
},

已接受答案中的解决方案在调试 Blazor 项目时不起作用。

改用这个:

"dotNetConfig": {
  "logging": { "moduleLoad": false }
}