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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |