Исправление буньян двойного лога ошибок - PullRequest
0 голосов
/ 17 октября 2019

Я (слегка) опытный пользователь Node.js, впервые пишущий RESTful API. Я использую Bunyan для регистрации запросов к серверу и их выполнения.

Я запутался в поведении, которое я получаю в тестовом коде - я пробовал несколько перестановок в этом коде (в "bunyantest.js") с тем же результатом.

const bunyan = require('bunyan');
var log = bunyan.createLogger({
    name: 'testApp',
    streams: [{
        level: 'info',
        stream: process.stdout
    }, {
        level: 'error',
        stream: process.stderr
    }]
});

Promise.resolve()
.then(() => {
    log.info('Began Dumb object creation.');
    var Dumb = {
        foo: "foo",
        bar: "bar",
        baz: "raboof"
    };
})
.catch(err => {
    log.error(err, 'If this error happened... %s', 'Dumb object creation failed.');
})
.then(() => {
    log.info('Tried to reference out-of-scope Dumb object.');
    console.log(Dumb.baz);
})
.catch(err => {
    log.error(err, 'If this error happened... %s', 'out-of-scope reference failed.');
})  

Когда я запускаю "узел bunyantest.js | ./node_modules/.bin/bunyan --level error", я получаю две копиивыдается ошибка: один в виде объекта JSON и один в печатном формате. Если я вместо этого вызываю «--level info», я получаю два довольно печатных оператора информации и затем довольно печатную ошибку с ошибкой JSON в некотором месте (по-видимому, наугад).

Я запутался в двойных сообщениях и не хочу, чтобы постороннее сообщение об ошибке JSON появлялось в журналах, которые я мог бы создать. Что вызывает такое поведение?

Редактировать: здесь приведен пример показания с объектом JSON в первой строке.

{"name":"testApp","hostname":"chris-VirtualBox","pid":1872,"level":50,"err":{"message":"Dumb is not defined","name":"ReferenceError","stack":"ReferenceError: Dumb is not defined\n    at Promise.resolve.then.catch.then (/home/chris/bunyantest.js:27:14)\n    at <anonymous>\n    at process._tickCallback (internal/process/next_tick.js:188:7)\n    at Function.Module.runMain (module.js:695:11)\n    at startup (bootstrap_node.js:188:16)\n    at bootstrap_node.js:609:3"},"msg":"If this error happened... out-of-scope reference failed.","time":"2019-10-16T23:30:13.636Z","v":0}
[2019-10-16T23:30:13.634Z]  INFO: testApp/1872 on chris-VirtualBox: Began Dumb object creation.
[2019-10-16T23:30:13.636Z]  INFO: testApp/1872 on chris-VirtualBox: Tried to reference out-of-scope Dumb object.
[2019-10-16T23:30:13.636Z] ERROR: testApp/1872 on chris-VirtualBox: If this error happened... out-of-scope reference failed.
    ReferenceError: Dumb is not defined
        at Promise.resolve.then.catch.then (/home/chris/bunyantest.js:27:14)
        at <anonymous>
        at process._tickCallback (internal/process/next_tick.js:188:7)
        at Function.Module.runMain (module.js:695:11)
        at startup (bootstrap_node.js:188:16)
        at bootstrap_node.js:609:3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...