我如何设置node-mongod-native的日志logging?

我正在尝试为节点的本机mongo驱动程序设置日志logging。 我有下面的代码片段作为我正在尝试做的演示。 不幸的是,控制台上没有任何东西被发射 有任何想法吗?

var express = require('express') ; var app = express(); var http = require('http'); var mongod = require('mongodb'); var server_conf = new mongod.Server('localhost', 27017, {auto_reconnect:true}); //dummy logger var logger = { error:function(message, object) {console.log('anything')}, log:function(message, object) {console.log('anything')}, debug:function(message, object) {console.log('anything')}} var db_container = {db: new mongod.Db('test', server_conf, {w:1,journal:true, native_parser:true, logger: logger})} app.use(express.bodyParser()); app.use(app.router); db_container.db.open(function(err, index_info){ if(err) throw err; var testcol = db_container.db.collection('testcol'); app.get('/', function(request, res){ testcol.insert({hello:"moto"}, function(err,doc){ if(err){ throw err; } testcol.find({}).toArray(function(err,docs){ res.send(docs); }); }); }); http.createServer(app).listen(3000, function () { console.log('Express server listening on port ' + '3000'); }); }); 

下面的复制是: 我发布在node-mongodb-native google组上的这个问题的答案的副本

查看代码的最新版本(提交0fd78b3278da8deac980cb876fcb2bf72eaafb79)后,它看起来像日志还没有真正实现。

首先一些基本规则:如果你创build一个服务器configuration对象( http://mongodb.github.io/node-mongodb-native/api-generated/server.html?highlight=server#Server )并设置logging器对象,那就是好。 如果你创build一个Db()对象,并在其选项中设置一个logging器,那么它将覆盖你已经设置了它的服务器configuration的任何logging器。 如果你创build一个MongoClient()对象,这相当于新的Db('test',serverOptions,options),所以你可以设置你的logging器对象在serverOptions或options中。 我不打算覆盖MongoClient.Connect,那里发生了什么,因为我不在乎查看代码的那一部分。

我只能find在connection.js中发生的logging器对象的用法,它显示你实际上需要一些额外的属性来logging工作。 即第69行

 if(this.logger != null && this.logger.doDebug){ this.logger.debug("opened connection", this.socketOptions); } 

或行307

 if(self.logger != null && self.logger.doError) self.logger.error("parseError", errorObject); 

connection.js中有更多的doDebug / doError属性查找需要日志logging才能工作。 从外观上看,发生的日志数量非常less,但是如果要启用它,则还需要在logging器上设置doError / doLog / doDebug属性。 我其实没有testing过,因为我没有在这里设置适当的设置,而是从代码中查看了这个问题。