【发布时间】:2010-11-12 17:48:00
【问题描述】:
我有兴趣将所有 Rails 应用程序日志记录发送到数据库(MySQL 或 MongoDB),作为日志文件的补充或替代。有几个原因,其中大部分与日志文件分析有关。我们已经在使用 Google Analytics,但是我们想做的很多事情在 Analytics 中并不可行。
此外,我想通过查看日志对问题进行“实时”调查。筛选日志文件是一种乏味的方法,我想比日志文件(容易)允许的更好的搜索和过滤。
最后,我经常想检查一些更接近网站访问者行为的东西:例如跟踪通过网站的路径,这样我就可以看到用户在发生错误之前查看的最后一页是什么。鉴于我们有多个应用服务器,单独的日志文件让这非常痛苦。如果所有数据都在数据库中,那么我可以很容易地看到给定访问者的正确页面顺序。我知道 Syslog 将是解决这个特定问题(单个日志文件/存储库)的一种方法,但我想将它与我与数据库搜索相关联的更好的搜索能力结合起来。
我想知道人们推荐什么来解决这个问题。您是直接登录到数据库,还是将日志文件转储到数据库中(但是您的方法是什么,以便它本质上是实时的/与日志文件本身一样最新)?
我目前正在确定我希望此日志记录的级别,因为我看到的另一件事是编写一个小型 Rack 过滤器来记录所有请求。这会错过正常 Rails 日志转储的所有额外输出(缓存命中和未命中的所有 SQL 和输出等),但它会实现我目标的很大一部分,并且似乎具有不干扰的优势系统中的任何其他内容。
无论如何,我不是在寻找一个正确的答案,而是更多地讨论和了解其他人在同样的情况下可能会做什么。
【问题讨论】:
-
只是好奇,Rails 应用程序日志记录有什么特别之处?是否类似于 Web 访问日志注册请求?还是您的意思是实际的应用程序逻辑?
-
参见下面的 cmets:我对应用程序级别的日志记录更感兴趣,但这不是完全必需的,但我也不想记录由网络服务器。我们使用 Hoptoad 进行异常记录/通知,这是一个很好的解决方案。我的问题实际上是对其他人实施的解决此或类似需求的要求/调查。
-
作为对此的更新,最近我一直在尝试使用 Papertrail。他们有一个非常简单的设置,可以将您的日志文件(Rails、Nginx 或任何类型的日志文件)实时导入他们的系统,然后进行全文搜索。它看起来很有希望。他们仍处于私人测试阶段,但肯定有希望。 Loggly 也有潜力,但我发现它很慢,而且我无法正确地将多行日志消息输入其中(可能只是我做错了,但我在他们的支持论坛上也没有得到任何答复) . Graylog2 和 logstash 看起来也可以。
标签: ruby-on-rails database logging