Я хотел бы использовать регистратор для моих конечных точек 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');