API-интерфейс REST Node.js Вход с использованием журнала bunyan или pino в stdout, file и mongodb? - PullRequest
0 голосов
/ 11 сентября 2018

Я хотел бы использовать регистратор для моих конечных точек API Node / Express, то есть, когда бы ни вызывались мои конечные точки API и выполнялись функции, я хочу, чтобы журнал записывался в stdout, файл и mongodb (если это возможно, все три).

Однако я не нашел удобного способа войти во все три метода, например, для bunyan, есть bunyan Logger, bunyan express logger и bunyan-mongodb-logger.Ни один из них не может войти во все три варианта.Также, кажется, нет простого способа сделать что-то вроде app.use (bunyanlogger), который автоматически регистрирует каждый раз, когда один из моих маршрутов регистрирует входящий запрос ... Поэтому, когда я делаю запрос API, мне нужно будет передать свой регистратор вAPI-функции и сделать какое-то ручное ведение журнала (например, logger.info («Некоторый маршрут», «Некоторое сообщение»)) для всех моих API?

Я обнаружил, что Pino Logger (это упрощенная версия Bunyan)распознает входящие запросы автоматически, когда вы делаете app.use (pino).Но как-то не буньян.А с pino есть проблема в том, что я просто не могу настроить простой способ входа в систему где-либо еще, кроме stdout ... это довольно неприятно, разве нет простого регистратора для узла / экспресса, который может выполнять все три?И ведет ли логирование автоматически на основе запросов или маршрутов?

const pino = require('express-pino-logger')();
app.use(pino); //recognises incoming requests and logs, but no customize streams options?

// BunyanMongoDBLogger has no stream file type? (it does not log to file..) 
//and does not recognise incoming requests automatically?
var bunyanMongoDbLogger = require('bunyan-mongodb-logger');
var logger = bunyanMongoDbLogger({
  name: 'some-name',
  streams: ['stdout', 'mongodb', {
    type: 'rotating-file',
    level: 'info',
    path: 'C:/Users/U500405/Desktop/log/bunyanLog3.log',
    period: '1d',   // daily rotation
    count: 3        // keep 3 back copies
  }],
  url: 'mongodb://localhost/logger-test',
});
logger.error(new Error('some error'), 'some custom message');
logger.info('Some info');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...