Если я попробую bunyan.createLogger, мое приложение не запустится и не выдаст ошибку

Если я пытаюсь использовать модуль Winston, у меня есть успех. Тем не менее, если я пытаюсь использовать bunyan, мое приложение не запускается и не показывает никакой ошибки (или я не знаю, как найти ошибку).

Я отлаживаю с помощью кода Visual Studio, хотя я не думаю, что это имеет отношение к этому вопросу.

Если мне просто нужен Уинстон, я не получаю ошибки. Проблема возникает, когда добавьте "bunyan.createLogger({name: "myapp"})", как показано ниже.

Мне не интересно сравнивать Буньяна с Уинстоном. Я, безусловно, заинтересован в использовании bunyan, если нет причины, как конфликт с другими модулями (я имею в виду другие требования, показанные ниже). Я только что упомянул здесь winston, потому что могу успешно его использовать, и я заметил, что winston не зависит от ".createLogger" (по крайней мере, примеры, которые я прочитал, никогда не используют ".createLogger" для winston и всегда показывают его для bunyan).

Что-то привлекло мое внимание, хотя я не знаю, связано ли это с этим делом, и я не знаю почему: я всегда устанавливаю зависимости, используя npm, устанавливаю "зависимость", потому что я хочу отслеживать все модули, используемые в моем проект в package.json. Немного странно, что я не вижу его после установки npm (см. Мой package.json ниже).

var express = require('express');
var bodyParser = require('body-parser');
var Client = require('node-rest-client').Client;
var bunyan = require('bunyan');
//var winston = require('winston');

var logBunyan = bunyan.createLogger({name: "myapp"});

//winston.log('info', 'Hello distributed log files!');
//winston.info('Hello again distributed logs');

...

package.json (здесь не должны появляться winston и bunyan, так как оба были установлены с "- save"?)

{
  "name": "myapp",
  "main": "server.js",
  "dependencies": {
    "body-parser": "^1.17.1",
    "express": "^4.15.2",
    "node-rest-client": "^3.0.3"
  }
}

2 ответа

Добавьте в ваши package.json зависимости, например:

"bunyan": "^1.8.8"

и делать npm install а затем запустите ваше приложение.

Пример app.js:

var bunyan = require('bunyan');
var log = bunyan.createLogger({name: "myapp"});
log.info("Hello!");

Проблема не была ни с Bunyan, ни с NodeJs вообще. Сегодня у меня есть похожая проблема с util.inspect. Всякий раз, когда в коде Visual Studio я доходил до линии с этим кодом, мой сервер падал без какой-либо полезной информации. Я попытался запустить прямо через Терминал (узел server.js) и увидел, что и util.inspect, и bunyan.createLogger работают, как и ожидалось. Я погрузился в такой сценарий (работает через терминал, но не работает с кодом Visual Studio) и внезапно осознаю, что существует определенный конфликт между версией TypeScript в коде Visual Studio и той, которая установлена ​​в моем Debian. Я не собираюсь объяснять это лучшими аргументами, но это может помочь кому-то в таком же состоянии. Я сделал: 1 - скачать переносную версию кода Visual Studio вместо использования npm. Я заметил небольшое обновление, с версии 1.8 до 1.10 2 - я обновил в терминале, npm, nodejs и машинописном PS: если бы я уделил больше внимания, я бы легко понял это. Всякий раз, когда я запускал код VS, я получал "Несоответствие версий! Global tsc (1.7.5)!= Языковая служба кода VS (2.2.1). Могут возникать непоследовательные ошибки компиляции", и теперь такое сообщение заканчивается. Это исправило ошибку. Надеюсь, что это поможет некоторым будущим читателям.

Другие вопросы по тегам