我使用带有连接池的 node.js 和 node-mongodb-native 驱动程序。有什么方法可以启用调试以查看发生了什么、有多少连接处于活动状态以及连接何时打开或关闭?
我想看到类似的东西:
* 连接 xxx 在主机上打开:端口 * 连接 yyy 在 host:port 上打开 * 连接 xxx 关闭
我使用带有连接池的 node.js 和 node-mongodb-native 驱动程序。有什么方法可以启用调试以查看发生了什么、有多少连接处于活动状态以及连接何时打开或关闭?
我想看到类似的东西:
* 连接 xxx 在主机上打开:端口 * 连接 yyy 在 host:port 上打开 * 连接 xxx 关闭
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))
和对象都支持 logger 选项,这是一个具有Db()
,和功能的对象。该选项目前似乎没有记录,但在0.9.6-20 2011-10-04 更改日志条目中提到。Server()
log
error
debug
Db()
我不确定此界面是否支持您需要的所有信息,但这绝对是一个很好的起点。驱动程序团队也可能会欢迎添加此类功能的拉取请求。
您可以使用节点的驱动程序Logger
类:
import { Logger } from "mongodriver";
稍后在您的代码中:
Logger.setLevel("debug");