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

标签 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 调试控制台刚刚退出并显示 附加调试器。 等待调试器断开连接...

最佳答案

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

此选项允许调试器捕获从您的代码发送到标准输出的数据。

示例配置:

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

编辑:忘记提及您可以直接运行您在 Node 中编写的代码,它会正确记录消息。

关于javascript - nodeJS Winston 模块示例未记录到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55456007/

相关文章:

javascript - 如何删除元素并嵌入jointjs

javascript - 自动更改可点击幻灯片顶部的 div 的文本颜色

javascript - 使用“全选”时排除禁用的复选框

javascript - 有没有办法获取使用 {} 初始化的对象的原型(prototype)

node.js - 具有不同日志级别的 log4js appender

javascript - 下拉菜单中的鼠标悬停和鼠标移开功能

node.js - 在多个 NPM 包之间共享一个 Mongoose 实例

javascript - 在multer上传文件之前如何获取正文?

node.js - SNS 可以发送加密电子邮件吗?

json - Splunk 查询 JavaScript 对象到 JSON 字符串