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

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

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

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

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

Что-то привлекло мое внимание, хотя я не знаю, связано ли это с этим случаем, и я не знаю, почему: я всегда устанавливаю зависимости, используя npm install «the dependency» -s, потому что я хочу отслеживать все модули, используемые в моем проект в 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"
  }
}

person DemeCarvO    schedule 10.03.2017    source источник


Ответы (2)


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

"bunyan": "^1.8.8"

и выполните npm install, а затем запустите приложение.

Пример app.js:

var bunyan = require('bunyan');
var log = bunyan.createLogger({name: "myapp"});
log.info("Hello!");
person hya    schedule 10.03.2017
comment
Хья, к сожалению, я все еще получаю ту же ошибку. На самом деле я вижу, что модуль bunyan загружен. Я могу поставить точку останова в строке 1618 bunyan.js и отладке, но не могу получить никаких исключений. Строки с 1617 по 1618: info.module.exports.createLogger = function createLogger(options) { return new Logger(options); }; - person DemeCarvO; 13.03.2017
comment
Я обновил свой ответ. Этот код представляет весь код приложения, и когда вы выполняете node app.js, он регистрирует сообщение. - person hya; 13.03.2017
comment
Вероятно, ваше приложение запускается, но вы ничего не делаете. - person hya; 13.03.2017
comment
Хья, как я заявил выше, если я перейду с bunyan на winston, я смогу успешно регистрировать все, что захочу. Я вижу определенную семантическую разницу между ними: у bunyan есть .createLogger. Когда мой код достигает .createLogger, он просто останавливается без каких-либо исключений. - person DemeCarvO; 13.03.2017
comment
Вы пробовали писать logBunyan.info("hello") после создания регистратора? - person hya; 13.03.2017
comment
Если у вас ничего нет после создания регистратора, он должен остановиться. - person hya; 13.03.2017

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

person DemeCarvO    schedule 16.03.2017