Пример модуля nodeJS Winston, не входящего в консоль - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь проверить некоторые логи Уинстона, следуя примеру , опубликованному здесь. Я не могу заставить это работать.

Я скопировал / вставил его в свой файл js и нажал F5 в vscode, чтобы протестировать скрипт.

Ничего не регистрируется.

Для ученика вдвойне трудно, когда подобные примеры не работают, когда вы в конечном итоге идете по кругу, пытаясь исправить свою собственную среду.

Может кто-нибудь сказать мне, если это должно работать?

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 Ответ

2 голосов
/ 01 апреля 2019

Проблема связана с конфигурацией отладчика.В 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
    }
  ]
}

РЕДАКТИРОВАТЬ: Забыл упомянуть, что вы можете запустить код, который вы написали в узле напрямую, и он будет правильно регистрировать сообщение.

...