Visual Studio Code不显示控制台日志

26
例如,在这种方法中,我使用console.log()来记录调试信息到控制台。
_onSearchTextChanged = (event) => {
    console.log('_onSearchTextChanged');
    ...
};

但是 Visual Studio Code 在控制台中没有显示任何东西

在这里输入图片描述

5个回答

23

如果您正在使用 Visual Studio Code 的调试模式,则可以添加以下选项:

{
 "outputCapture": "std"
}

这将把您的日志重定向到调试控制台。

编辑:正如Luigi04在评论部分提到的那样,此设置需要放置在launch.json中。


9
我应该把这个设置放在哪里? - KubaMiszcz
2
在您的工作区中的 .vscode 文件夹中的 launch.json 文件中(https://code.visualstudio.com/docs/editor/debugging) - Luigi04

6

launch.json 中(使用 F1 打开),在 configurations 下,添加 outputCapture 属性(如果还不存在),然后将其设置为 stdconsole,如下所示:

{
  ...
  "configurations": [
    {
      ...
      "outputCapture": "std", // or "console" 
    }
  ]
}

"std"指的是以下文档中的说明:

outputCapture - 如果设置为 std,则进程 stdout/stderr 的输出将显示在调试控制台中,而不是通过调试端口监听输出。这对于直接写入stdout/stderr流的程序或日志库而非使用 console.* API 的程序很有用。

还要注意,使用 std 将显示完整的错误信息(适用于VSCode 1.49.0)。例如,创建一个包含错误的JS文件:

console.log(a) // error: a is undefined

使用std

c: \Users\path\to\file.js: 1
console.log(a) // error: a is undefined
    ^

ReferenceError: a is not defined
at Object.<anonymous>(c: \Users\path\to\file.js: 1: 13)
at Module._compile(internal / modules / cjs / loader.js: 1158: 30)
at Object.Module._extensions..js(internal / modules / cjs / loader.js: 1178: 10)
at Module.load(internal / modules / cjs / loader.js: 1002: 32)
at Function.Module._load(internal / modules / cjs / loader.js: 901: 14)
at Function.executeUserEntryPoint[as runMain](internal / modules / run_main.js: 74: 12)
at internal / main / run_main_module.js: 18: 47

使用console

Uncaught ReferenceError: a is not defined

在我看来,std 稍微好一些。


0
在我的情况下,我很久以前在搜索栏中搜索了一个文本,但搜索文本从未从搜索栏中删除。尽管搜索栏显示了文本0/173,表示在173个打印行中没有匹配的行数为0,但我仍然无法弄清楚为什么“DEBUG CONSOLE”完全为空。希望这可以帮助到其他人!

0
在最新版本的VSCode(1.83.1)中,属性名称已更改。您必须使用以下属性替代:
"console": "internalConsole"
示例launch.json
{"version":"0.2.0","configurations":[{"type":"node","request":"launch","name":"Launch Program","skipFiles":["<node_internals>/**"],"program":"${workspaceFolder}/src/app/pages/auth/auth.component.ts","outFiles":["${workspaceFolder}/**/*.js"],"console":"internalConsole"}]}

在Vscode 1.84.1中,如果你尝试在launch.json的configurations元素中放置"console",你会收到一个错误提示:"不允许使用属性console"。请删除这个答案或者更好地解释一下。 - undefined
@Rualark,感谢你指出这一点,我已经添加了一个示例的launch.json文件供参考。 - undefined

-1

如果您正在浏览器中运行和测试代码,则按“F12”(对于Google Chrome)以在浏览器中查看日志。 如果您正在调试模式下运行Visual Studio Code,则仅会显示日志。在菜单栏中有调试选项可在调试模式下运行,或者您可以在此处找到完整的参考资料。


3
这不是对问题的回答。 - Code Pope

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接