【问题标题】:Rails Caching Log LevelRails 缓存日志级别
【发布时间】:2026-02-11 15:15:01
【问题描述】:

借助 Rails 2.1 中的新缓存选项,我在日志中得到了很好的整体

Cached fragment hit: views/homepage (0.16549)

但是,它们是在:debug 级别记录的,该级别与 SQL 输出相同。我希望能够禁用 SQL 输出,并且仍然可以看到缓存信息。我该怎么做呢

【问题讨论】:

    标签: ruby-on-rails logging


    【解决方案1】:

    您可以为 ActiveRecord 实例化一个特定的记录器,并将其日志级别设置为 :info,同时将默认记录器保留在调试状态...

    ActiveRecord::Base.logger = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}_database.log")
    ActiveRecord::Base.logger.level = Logger::INFO # should set the log_level to info for you
    

    来自http://wiki.rubyonrails.org/rails/pages/HowtoConfigureLogging

    或者你可以重新打开 AbstractAdapter 并覆盖 log(sql,name) 方法,让它什么都不做

    http://api.rubyonrails.com/classes/ActiveRecord/ConnectionAdapters/AbstractAdapter.html#M001242

    【讨论】:

    • 这很酷,将新记录器设置为信息的语法是什么? ActiveRecord::Base.logger.level = :info 导致运行时错误