Ich habe eine Anwendung mit NodeJS und Mongodb. Ich habe Mungo für ODM verwendet. Jetzt möchte ich alle Abfragen protokollieren, die während der gesamten Anwendung Mungo auslösen.
Wie protokolliere ich diese?
Sie können den Debug-Modus folgendermaßen aktivieren:
mongoose.set('debug', true);
oder fügen Sie Ihren eigenen Debug-Rückruf hinzu:
mongoose.set('debug', function (coll, method, query, doc [, options]) {
//do your thing
});
Dadurch werden alle ausgeführten Erfassungsmethoden und ihre Argumente in der Konsole protokolliert.
Ich verwende Node Bunyan. Dies ist eine Option zum Debuggen und Verfolgen von Abfragen (kann jemand anderem helfen.)
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 }); });
quelle
Sie können das folgende Format verwenden:
mongoose.set("debug", (collectionName, method, query, doc) => { console.log(`${collectionName}.${method}`, JSON.stringify(query), doc); });
oder ein anderer Logger Ihrer Wahl:
mongoose.set("debug", (collectionName, method, query, doc) => { logger(`${collectionName}.${method}`, JSON.stringify(query), doc); });
quelle
log(` CPU: ${chalk.red('90%')} RAM: ${chalk.green('40%')} DISK: ${chalk.yellow('70%')} `);
Sie können auch Debug-Logger-Parameter festlegen:
Dadurch werden jedoch nur Abfragen protokolliert , keine Anweisungen eingefügt oder aktualisiert.
quelle