Eu tenho um aplicativo usando nodejs e mongodb. Eu usei o mangusto para ODM. Agora, quero registrar todas as consultas que o mangusto dispara durante todo o aplicativo.
Como registrar isso?
Você pode ativar o modo de depuração da seguinte forma:
mongoose.set('debug', true);
ou adicione seu próprio retorno de chamada de depuração:
mongoose.set('debug', function (coll, method, query, doc [, options]) {
//do your thing
});
Isso registrará todos os métodos de coleta executados e seus argumentos no console.
Estou usando o node bunyan, esta é uma opção para depurar e rastrear consultas (pode ajudar outra pessoa)
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 }); });
fonte
Você pode usar o seguinte formato:
mongoose.set("debug", (collectionName, method, query, doc) => { console.log(`${collectionName}.${method}`, JSON.stringify(query), doc); });
ou qualquer outro registrador de sua escolha:
mongoose.set("debug", (collectionName, method, query, doc) => { logger(`${collectionName}.${method}`, JSON.stringify(query), doc); });
fonte
log(` CPU: ${chalk.red('90%')} RAM: ${chalk.green('40%')} DISK: ${chalk.yellow('70%')} `);
Você também pode definir os parâmetros do registrador de depuração:
mas isso apenas registrará consultas , não inserirá ou atualizará instruções.
fonte