簡體   English   中英

如何在 node.js 和 mongoDB 本機驅動程序上啟用調試?

[英]how to enable debug on node.js and mongoDB native driver?

我使用 node.js 和 node-mongodb-native 驅動程序,以及連接池。 有什么方法可以啟用調試以查看發生了什么、有多少連接處於活動狀態以及連接何時打開或關閉?

我想看到類似的東西:

* connection xxx opened on host:port
* connection yyy opened on host:port
* connection xxx closed
  1. 要查看發送到 MongoDB 的命令,請將驅動程序記錄器的級別設置為debug
  2. 要對連接池事件做出反應,只需訂閱它們並自己登錄即可。
  3. 您可能需要拓撲監視來對拓撲更改做出反應,例如連接到輔助節點或斷開與副本集的連接。
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))

Db()Server()對象都支持 logger 選項,這是一個具有logerrordebug功能的對象。 目前似乎沒有記錄Db()選項,但在0.9.6-20 2011-10-04 更改日志條目中提到了它。

我不確定此界面是否支持您需要的所有信息,但它絕對是一個不錯的起點。 驅動程序團隊也可能會歡迎添加此類功能的拉取請求。

您可以使用節點的驅動程序Logger類:

import { Logger } from "mongodriver";

稍后在您的代碼中:

Logger.setLevel("debug");

您可以查看官方驅動程序 API文檔上的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM