使用 Fiddler 进行日志记录

编辑

Fiddler 这样的 Web 调试代理是一种从机器捕获 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