我使用node.js和node-mongodb-native驱动程序,连接池。有没有办法启用调试,看看发生了什么,有多少连接是活动的,什么时候打开或关闭连接?
我希望看到类似的内容:
* connection xxx opened on host:port * connection yyy opened on host:port * connection xxx closed
答案 0 :(得分:1)
Db()
和Server()
对象都支持记录器选项,该选项是具有log
,error
和debug
功能的对象。 Db()
选项目前似乎没有记录,但0.9.6-20 2011-10-04 changelog entry中提到了它。
我不确定此界面是否支持您需要的所有信息,但它绝对是一个很好的起点。驱动程序团队也可能会欢迎添加此类功能的拉取请求。
答案 1 :(得分:1)
您可以使用节点的驱动程序Logger
类:
import { Logger } from "mongodriver";
然后在您的代码中:
Logger.setLevel("debug");
您可以在the official driver API doc上查看文档
答案 2 :(得分:1)
debug
。const client = new MongoClient('mongodb://127.0.0.1:27017/', {
useUnifiedTopology: true,
loggerLevel: 'debug',
// logger: (message, context) => console.dir(context),
})
// connection pool monitoring
client.on('connectionPoolCreated', event => console.dir(event))
client.on('connectionPoolClosed', event => console.dir(event))
client.on('connectionCreated', event => console.dir(event))
client.on('connectionReady', event => console.dir(event))
client.on('connectionClosed', event => console.dir(event))
client.on('connectionCheckOutStarted', event => console.dir(event))
client.on('connectionCheckOutFailed', event => console.dir(event))
client.on('connectionCheckedOut', event => console.dir(event))
client.on('connectionCheckedIn', event => console.dir(event))
client.on('connectionPoolCleared', event => console.dir(event))
// topology monitoring
client.on('serverDescriptionChanged', event => console.dir(event))
client.on('serverHeartbeatStarted', event => console.dir(event))
client.on('serverHeartbeatSucceeded', event => console.dir(event))
client.on('serverHeartbeatFailed', event => console.dir(event))
client.on('serverOpening', event => console.dir(event))
client.on('serverClosed', event => console.dir(event))
client.on('topologyOpening', event => console.dir(event))
client.on('topologyClosed', event => console.dir(event))
client.on('topologyDescriptionChanged', event => console.dir(event))