【问题标题】:Logging API calls记录 API 调用
【发布时间】:2011-04-28 23:50:19
【问题描述】:

我已经编写了一个 API,目前正在研究为系统提供日志记录的最佳方式。

我们希望能够对正在拨打的电话有一个概览,如果特定电话经常被点击等等。

简单地记录和呈现所有这些信息的最佳方式是什么?

只是想知道是否有任何包含我正在寻找的 API 的预构建或常用解决方案。

【问题讨论】:

  • 您确定要log 该信息吗?对我来说,这听起来像是你想要 profilestresstest 它。
  • 我们想要记录,因此我们能够查看某些用户是否呼叫过多(是的,我们有速率限制,但仍然很高兴知道人们是否试图滥用)。以及查看大量使用的真正来源,发生了多少错误,这很有趣。
  • 詹姆斯,你有没有想出一个好的解决方案?我对同样的问题感兴趣。

标签: php api


【解决方案1】:

有几种方法可以做到这一点。我会首先从一个抽象的日志记录解决方案开始,比如 Monolog [https://github.com/Seldaek/monolog]。通过这种方式,您可以在一个文本文件中测试和使用您想要登录的内容,然后转向更优雅的解决方案。

Monolog 为一堆不同的 ligging 服务/容器提供了处理程序。对于 API 使用记录,我将查看以下内容:

GrayLog2,一个非常好的开源日志系统。

Cube,也是一个很棒的用于收集时间戳事件的开源项目。

Loggly,基于云的商业日志平台。 Monolog 现在没有 Loggly 的处理程序,但我写了一个我目前在生产中使用的处理程序。我的 Monolog 项目的分支中有这个处理程序,我计划很快提交一个拉取请求:Download on Gitub here

Sentry,一个实时事件记录和聚合平台,您可以自己托管或使用付费托管版本。像 Loggly 一样,Monolog 中没有处理程序,但它是一个非常好的项目,有一个很好的 API,您可以轻松编写一些简单的代码来登录。

【讨论】:

    【解决方案2】:

    一个简单的解决方案是记录对文件的所有调用,可能采用类似于 Apache Web 服务器日志的格式。然后您可以使用现有的日志分析工具解析日志,例如 Webalizer。

    【讨论】:

      【解决方案3】:

      您提到“预建”解决方案 - 那么您是否考虑过为此使用外部服务?例如。看看http://www.webservius.com - 它提供了许多不同的 API 管理功能,并且可以进行各种类型的分析(例如,显示哪些调用最常使用、哪个用户等)

      【讨论】:

      • 不幸的是,我们的需求最终会变得过于昂贵。
      • 您可以通过 webservius dot com 的 eugene 离线与我联系,告知您的确切需求(预期通话量等),我们或许能够解决问题。
      【解决方案4】:

      考虑方法日志是一个流

      日志是一个流,每个人都应该这样对待它们。您的程序应该记录到 stdout 和/或 stderr 并省略任何处理日志路径、日志轮换或通过 syslog 协议发送日志的尝试。程序日志流的方向可以留给运行时容器:本地终端或 IDE(在开发环境中)、Upstart / Systemd 启动脚本(在传统托管环境中)或像 Logplex/Heroku 这样的系统(在平台环境)。

      (我在这个answer中注意到它,最初来自这个article

      @Emil Vikström 的回答中标记了好东西,需要注意的是,format 是为了简化解析和分析。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-02
        • 2019-11-01
        • 2017-04-17
        • 1970-01-01
        • 2015-12-17
        • 2022-06-14
        • 2018-01-09
        相关资源
        最近更新 更多