Node.js 在应用程序中记录mongoose fire的所有查询
我有一个使用nodejs和mongodb的应用程序。我用猫鼬做ODM。 现在我想记录mongoose在整个应用程序中发出的所有查询Node.js 在应用程序中记录mongoose fire的所有查询,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个使用nodejs和mongodb的应用程序。我用猫鼬做ODM。 现在我想记录mongoose在整个应用程序中发出的所有查询 如何记录这些信息?您可以像这样启用调试模式: mongoose.set('debug', true); 或者添加您自己的调试回调: mongoose.set('debug', function (coll, method, query, doc [, options]) { //do your thing }); 这将把所有执行的收集方法及其参数记录到控制台。
如何记录这些信息?您可以像这样启用调试模式:
mongoose.set('debug', true);
或者添加您自己的调试回调:
mongoose.set('debug', function (coll, method, query, doc [, options]) {
//do your thing
});
这将把所有执行的收集方法及其参数记录到控制台。我正在使用node bunyan,这是一个调试和跟踪查询的选项(可能会帮助其他人)
您还可以设置调试记录器参数:
node index.js DEBUG=mquery
但这只会记录查询,而不会插入或更新语句。您可以使用以下格式:
mongoose.set("debug", (collectionName, method, query, doc) => {
console.log(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
或您选择的任何其他记录器:
mongoose.set("debug", (collectionName, method, query, doc) => {
logger(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
mongoose如何格式化日志。IE我想用第二个选项让温斯顿登录。我喜欢mongoose日志的格式,我会用同样的方式格式化我的日志w/winston.Nice。但是如何只给mongoose debug Defaults这样的值添加颜色您可以使用chalk npm模块来着色
log(`CPU:${chalk.red('90%')}RAM:${chalk.green('40%'))磁盘:${chalk.yellow('70%')})代码>我需要记录执行查询的文件名和行号。还有什么我能做到的吗?
mongoose.set("debug", (collectionName, method, query, doc) => {
logger(`${collectionName}.${method}`, JSON.stringify(query), doc);
});