使用Fiddler进行日志记录

编辑

诸如Fiddler之类的网页调试代理是捕获机器上HTTP流量的一种有效方法,尤其是在针对本地Elasticsearch集群进行开发时。

捕获到远程集群的流量

编辑

捕获针对远程集群的流量非常简单,只需启动Fiddler!您可能还想通过使用过滤器选项卡来过滤流量,只显示到远程集群的请求。

Capturing requests to a remote host

捕获到本地集群的流量

编辑

.NET Framework被硬编码为不通过任何代理发送localhost的请求,因此作为代理的Fiddler将不会接收此类流量。

这很容易通过使用ipv4.fiddler作为主机名而不是localhost来避免。

var isFiddlerRunning = Process.GetProcessesByName("fiddler").Any();
var host = isFiddlerRunning ? "ipv4.fiddler" : "localhost";

var connectionSettings = new ConnectionSettings(new Uri($"http://{host}:9200"))
    .PrettyJson(); 

var client = new ElasticClient(connectionSettings);

美化JSON请求和响应,以便在Fiddler中更容易阅读。

在Fiddler运行的情况下,请求和响应现在将被捕获,并且可以在“检查器”选项卡中进行检查。

Inspecting requests and responses

和之前一样,您可能还想过滤流量,只显示发送到您运行Elasticsearch的端口上的ipv4.fiddler的请求。

Capturing requests to localhost