使用 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