【问题标题】:Turn off active record logging in production关闭生产中的活动记录日志记录
【发布时间】:2014-04-03 22:51:09
【问题描述】:

如何关闭生产中的详细活动记录日志记录? (就像记录每个 SQL 语句一样) 我的日志填得很快,因为我有后台作业运行大量查询。这在我的开发服务器上很好,但我不需要这个登录生产。

【问题讨论】:

  • 并不是说我不同意你的观点,但是,我喜欢保留 SQL 日志并通过轮换来处理日志文件大小问题。你有这个设置吗?如果没有,您在产品中使用的是什么操作系统?
  • 我的问题是我在 heroku 上使用 papertrail,如果我不控制日志大小,我会在几分钟内用完数据传输。我只是不需要为这个特定的后台工作记录这个。因此,如果有一种方法可以“暂时”关闭它也可以工作

标签: ruby-on-rails logging ruby-on-rails-4 rails-activerecord


【解决方案1】:

要完全关闭,只需将其添加到您的环境文件中(即production.rb):

config.active_record.logger = nil

参见AR guide(第 3.6 节):

config.active_record.logger 接受一个符合 Log4r 的接口或默认的 Ruby Logger 类,然后 传递给任何新的数据库连接。你可以找回这个 通过在 Active Record 模型类或 Active Record 模型实例。设置为 nil 以禁用日志记录。

其他帖子中记录了更多选项(例如选择性地打开/关闭)。请参阅Disable Rails SQL logging in console 作为起点。

【讨论】:

  • 谢谢。我最终将 ActiveRecord::Base.logger = nil 放在我不想记录的特定工作中
  • 如果你这样做,你也会在模型中丢失你的 logger 对象......你必须将模型中的所有 logger.info 调用更改为 Rails.logger.info 等。
猜你喜欢
  • 2011-05-02
  • 1970-01-01
  • 2012-10-23
  • 2016-01-06
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
相关资源
最近更新 更多