加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 防止rails生产日志交错来自不同请求的最佳方

发布时间:2020-12-17 02:02:14 所属栏目:百科 来源:网络整理
导读:在rails 3.2之前,默认情况下会阻止这种情况.使用rails 3.2,似乎没有一个明确的解决方案.在引入更改的提交中的注释中,Aaron建议使用进程pid标记日志行和/或请求uuid,这不满足我们的操作人员.我已经看到了一些随机解决方案,但目前尚不清楚它们如何解决问题.这
在rails 3.2之前,默认情况下会阻止这种情况.使用rails 3.2,似乎没有一个明确的解决方案.在引入更改的提交中的注释中,Aaron建议使用进程pid标记日志行和/或请求uuid,这不满足我们的操作人员.我已经看到了一些随机解决方案,但目前尚不清楚它们如何解决问题.这看起来像每个人都会有一个相当平庸的问题;别人推荐什么解决方案?其他人是否只依靠NewRelic来记录他们关心的数据?

Aaron’s Commit

解决方法

我们最终写了一个温和可怕的补丁来恢复旧的行为:

config.after_initialize do

  # Reverse the deprecation of flush in BufferedLogger
  module ActiveSupport
    class BufferedLogger
      def flush
        @log_dest.flush
      end
      def respond_to?(method,include_private = false)
        super
      end
    end
  end

  # Let the OS buffer the log
  Rails.logger.instance_variable_get(:@logger).instance_variable_get(:@log_dest).sync = false
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读