Reputation: 300
i use node.js and node-mongodb-native driver, with connection pooling. is there any way to enable debug for see what's happening, how many connections are active and when a connection is opened or closed?
i would like to see something like:
* connection xxx opened on host:port * connection yyy opened on host:port * connection xxx closed
Upvotes: 6
Views: 7649
Reputation: 1927
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))
Upvotes: 4
Reputation: 18561
You can use the node's driver Logger
class:
import { Logger } from "mongodriver";
And later in your code:
Logger.setLevel("debug");
You can check documentation on the official driver API doc
Upvotes: 1
Reputation: 6922
The Db()
and Server()
objects both support a logger option, which is an object with log
, error
and debug
functions. The Db()
option doesn't appear to be documented at the moment, but it is mentioned in the 0.9.6-20 2011-10-04 changelog entry.
I'm not sure if all of the information you need is supported with this interface, but it's definitely a good place to start. The driver team would also probably welcome a pull request to add such features.
Upvotes: 1