我正在尝试为 Node 的 native mongo 驱动程序设置日志记录。我设置了以下代码片段作为我想要做的事情的演示。不幸的是,控制台上没有发出任何信号。有什么想法吗?
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');
});
});
最佳答案
复制如下:a copy of the answer to this question I posted on the node-mongodb-native google group
查看最新版本的代码(commit 0fd78b3278da8deac980cb876fcb2bf72eaafb79)后,日志记录似乎尚未真正实现。
首先是一些基本规则:如果您创建一个服务器配置对象( http://mongodb.github.io/node-mongodb-native/api-generated/server.html?highlight=server#Server )并在那里设置记录器对象,那就可以了。如果您创建 Db() 对象并在其选项中设置记录器,那么它将覆盖您设置其服务器配置的任何记录器。如果您创建 MongoClient() 对象,这相当于 new Db('test', serverOptions, options) ,因此您可以在 serverOptions 或 options 中设置记录器对象。我不会介绍 MongoClient.Connect 以及那里发生的事情,因为我不想查看这部分代码。
我只能在connection.js 中找到记录器对象的用法,其中显示您实际上需要一些附加属性才能使日志记录正常工作。 即第 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 属性查找需要日志记录才能工作。从外观上看,发生的日志记录量非常小,但如果您想启用它,您还需要在记录器上设置 doError/doLog/doDebug 属性。实际上我还没有对此进行测试,因为我在这里没有正确的设置,但从查看代码来看似乎是这样。
关于node.js - 如何为 node-mongodb-native 设置日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18336830/