Заносить в журнал все запросы о том, что Mongoose fire в приложении
У меня есть приложение, использующее nodejs и mongodb. Я использовал mongoose для ODM.
Теперь я хочу регистрировать все запросы, которые устраивают огонь во время всего приложения.
Как зарегистрировать их?
Ответ 1
Вы можете включить режим отладки следующим образом:
mongoose.set('debug', true);
или добавить свой собственный отладочный ответ:
mongoose.set('debug', function (coll, method, query, doc [, options]) {
//do your thing
});
Это приведет к регистрации всех запущенных методов сбора и их аргументов в консоли.
Ответ 2
Я использую node bunyan, это опция для отладки и отслеживания запросов (может помочь кому-то еще)
function serializer(data) {
let query = JSON.stringify(data.query);
let options = JSON.stringify(data.options || {});
return `db.${data.coll}.${data.method}(${query}, ${options});`;
}
let log = bunyan.createLogger({
name: 'AppName',
src: false,
serializers: {
// ...
dbQuery: querySerializer
// ...
},
// ...
});
mongoose.set('debug', function(coll, method, query, doc, options) {
let set = {
coll: coll,
method: method,
query: query,
doc: doc,
options: options
};
log.info({
dbQuery: set
});
});
Ответ 3
Вы также можете установить параметры журнала отладки:
node index.js DEBUG=mquery
но это будет только регистрировать запросы, а не вставлять или обновлять операторы.