如何记录Node中的每个http.request

时间:2017-02-18 18:03:50

标签: node.js

我希望记录特定节点应用及其所有模块发出的每个http请求。函数中的包装请求可以适用于所有非模块代码,缺点显然是它不包含模块代码,并且操作繁琐。

这适用于已投入生产的应用,只有我想到的其他选项是tcpdump。

4 个答案:

答案 0 :(得分:3)

好的,我找到了我要找的东西。

get the Adapter and iterate over it.

答案 1 :(得分:2)

设置NODE_DEBUG=http将使节点登出详细的HTTP请求信息到控制台。

示例:

NODE_DEBUG=http node index.js

NODE_DEBUG=http npm start

有关更多信息,请参阅:

<块引用>

默认可用的 NODE_DEBUG 属性列表:

  • 计时器
  • http
  • 网络
  • fs
  • 集群
  • tls
  • child_process
  • 模块

答案 2 :(得分:0)

最简单/最不干扰的方式是使用Web代理。您可以在节点中自行编写一个或一个现成的架子。应用程序所依赖的计算机必须配置*通过代理发送所有出站流量,然后代理可以记录流量。实施细节将根据您选择的代理/方法而有所不同。

*可以说,有办法做到这一点,机器甚至不知道他们被代理,但我发现在实践中很难做到正确,特别是使用https流量

答案 3 :(得分:-1)

检查名为Morgan here

的HTTP请求记录器