如何单独设置Rails Cache日志级别?

kyr*_*rre 5 logging ruby-on-rails

由于遗留项目的缘故,我使用的是旧的rails版本2.3.2.

我在rails应用程序中将全局log_level设置为:debug.但是由于我们也使用Rails.cache,日志文件中充满了烦人的行,比如
Cache read:...
Cache miss:...

我想压制这些但不影响其他"更有用"的信息,如SQL日志记录.

怎么做?

dex*_*ter 12

好吧,在您的特定environment.rb文件中初始化缓存存储(在下面的示例中,我使用内存存储)之后,您可以将cache_store的日志重定向到单独的文件并调整记录器级别:

config.cache_store = ActiveSupport::Cache::MemoryStore.new(:expires_in => 5.minutes)
config.cache_store.logger = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}_cache.log")
config.cache_store.logger.level = Logger::INFO
Run Code Online (Sandbox Code Playgroud)

除此之外,缓存存储有一个叫做沉默的方法!这将关闭记录器: - |

config.cache_store.silence!
Run Code Online (Sandbox Code Playgroud)

  • 现在这已经过时了现代铁轨.需要在初始化程序或类似工具中的ActiveSupport :: Cache :: Store.logger上设置缓存日志订阅者.Rails 3及更高版本不再默认记录缓存命中等. (4认同)
  • 你可以在`enviroment.rb`中做`Rails.cache.silence!` (2认同)