调试模式
编辑调试模式
编辑调试信息 解释说,来自 Elasticsearch.Net 和 NEST 的每个响应都包含一个 DebugInformation
属性,并且 ConnectionSettings
和 RequestConfiguration
上的属性可以分别控制在调试信息中包含哪些附加信息,用于所有请求或每个请求。
在开发过程中,启用最详细的调试信息可能很有用,有助于识别和排除问题,或者只是确保客户端的行为符合预期。ConnectionSettings
上的 EnableDebugMode
设置是一种方便的简写方式,用于启用详细的调试信息,配置许多设置,例如:
- 禁用直接流式传输以捕获请求和响应字节
- 美化来自 Elasticsearch 的 JSON 响应
- 在发出请求时收集 TCP 统计信息
- 在发出请求时收集线程池统计信息
- 如果服务器端出现错误,则在响应中包含 Elasticsearch 堆栈跟踪
IConnectionPool pool = new SingleNodeConnectionPool(new Uri("https://127.0.0.1:9200")); var settings = new ConnectionSettings(pool) .EnableDebugMode(); var client = new ElasticClient(settings); var response = client.Search<Project>(s => s .Query(q => q .MatchAll() ) ); var debugInformation = response.DebugInformation;
除了在响应中公开调试信息之外,调试模式还会导致调试信息默认写入 System.Diagnostics.Debug.Listeners
集合中的跟踪侦听器中(请求完成后)。在启用调试模式时,可以传递一个委托来执行不同的操作(请求完成后),使用 OnRequestCompleted
var pool = new SingleNodeConnectionPool(new Uri("https://127.0.0.1:9200")); var client = new ElasticClient(new ConnectionSettings(pool) .EnableDebugMode(apiCallDetails => { // do something with the call details e.g. send with logging framework }) );