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

lon*_*nix 4 .net-core visual-studio-code asp.net-core asp.net-core-2.2

当运行我的Web应用程序(在vscode中)时,调试控制台中填充了以下行:

加载了'/foo/bar/dotnet/shared/Microsoft.NETCore.App/2.2.4/System.Private.CoreLib.dll'。跳过的加载符号。模块已优化,调试器选项“ Just My Code”已启用。

线程123以代码0(0x0)退出。

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

这很烦人-如何禁用它?

Hen*_*ema 6

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

"logging": {
    "moduleLoad": false
}
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,我的日志控制台现在足够干净了,可以吃东西了 (2认同)

Arv*_*wen 5

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

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

"logging": {
    "moduleLoad": false
}
Run Code Online (Sandbox Code Playgroud)

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

"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}"
    }
]
Run Code Online (Sandbox Code Playgroud)


lon*_*nix 5

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

但这对于从 codelens 启动的调试会话不起作用:

从 codelens 启动调试会话

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

"csharp.unitTestDebuggingOptions": {
  "logging": { "moduleLoad": false }
},
Run Code Online (Sandbox Code Playgroud)