ruby-on-rails - 如何将特定请求详细信息记录到 Rails 服务器日志

标签 ruby-on-rails ruby logging heroku

我通常不喜欢在不了解正在发生的事情的情况下直接询问如何做某事,但我对 Rails 还很陌生,我很难做到这一点。

基本上,我需要在单个日志语句中为每个请求捕获以下信息(如果可能的话)

  • 日志条目日期
  • 日志录入时间
  • HTTP 方法
  • 请求的 URL
  • 港口
  • 请求者IP地址
  • 请求者的用户代理
  • 引用网址
  • HTTP响应码
  • 主机名

    自定义日志格式的首选方式是什么?是否可以只修改现有日志并将此信息传递给它?或者我是否需要扩展和覆盖我需要的行为?

    我不需要将其保存到不同的日志文件或任何其他文件中,只需在每次请求时输出到 STDOUT。

    如有任何帮助,我们将不胜感激。

    谢谢!

  • 最佳答案

    我知道这是一个老问题,但对于 future 偶然发现这个问题的人来说,我相信 Rails 3.2+ 中的首选方法是使用 ActiveSupport::TaggedLogging。介绍这个的博文是here

    还有一个快速示例,它向每个日志消息添加子域、每个请求的 UUID 和用户代理。您可以将其弹出到您的环境初始化文件中。

    config.log_tags = [ :subdomain, :uuid, lambda { |request| request.user_agent } ]
    

    关于ruby-on-rails - 如何将特定请求详细信息记录到 Rails 服务器日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267540/

    相关文章:

    ruby-on-rails - Rails 3.0 & Ruby 1.9.2rc : Rake commands return 'already initialized constant' & stack level too deep errors. 任何想法

    javascript - 将第 3 方 JS/CSS 库添加到 Rails 应用程序

    javascript - 如何将模型对象数组转换为以模型 ID 作为键的对象?

    ruby - Thin 与 Ramaze 发生严重碰撞

    azure - Azure Blob 存储是否适合存储许多(小型)通信日志?

    java - 停止在 catalina.out 上出现 Hibernate SQL 日志

    javascript - 通过 AJAX in rails 加载更多用户电影

    ruby-on-rails - Rails 将并发永久链接回退路由到另一个 Controller

    ruby-on-rails - 将散列作为 hidden_​​field_tag 中的值传递

    java - 用线程id在java类中记录日志可以吗?