nodeJS Winston模块示例未记录到控制台

时间:2019-04-01 13:12:44

标签: javascript node.js winston

我正在尝试测试一些Winston日志记录,以示例posted Here为例,我无法使它正常工作。

我已将其复制/粘贴到我的js文件中,并在vscode中按F5键来测试脚本。

什么都没有记录。

对于学习者来说,当像这样的例子不起作用时,您的学习将倍加困难,因为您最终不得不尝试修复自己的环境。

有人可以告诉我这个应该是否有效?

const { createLogger, format, transports } = require('winston');
const { combine, timestamp, label, prettyPrint } = format;
 
const logger = createLogger({
  format: combine(
    label({ label: 'right meow!' }),
    timestamp(),
    prettyPrint()
  ),
  transports: [new transports.Console()]
})
 
logger.log({
  level: 'info',
  message: 'What time is the testing at?'
});
// Outputs:
// { level: 'info',
//   message: 'What time is the testing at?',
//   label: 'right meow!',
//   timestamp: '2017-09-30T03:57:26.875Z' }

我的nodeJS调试控制台刚刚退出并显示 附带调试器。 等待调试器断开连接...

1 个答案:

答案 0 :(得分:2)

问题出在调试器配置上。在VSCode中,配置调试器时需要将"outputCapture": "std"添加到launch.json文件中。

此选项使调试器可以捕获从代码发送到std输出的数据。

示例配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/winston.js",
      "outputCapture": "std", // <-- ADD THIS LINE
    }
  ]
}

编辑:忘记了您可以直接运行在节点中编写的代码,它将正确记录消息。