2011-08-31 107 views
5

由于遗留项目的原因,我使用了2.3.2的漂亮的旧rails版本。如何分别设置Rails缓存日志级别?

我将全局log_level设置为:在我们的rails应用程序中进行调试。但由于我们还使用Rails.cache日志文件都充满了烦人的线,如
缓存读取:...
缓存未命中:...

我只想抑制这些,但不会影响到其他“更有用的'信息,如SQL日志记录。

如何做到这一点?

+0

而更常见的问题是如何调整Rails中特定类的日志级别?在Ruby/Rails世界中是否有与log4j相同的东西? – kyrre

回答

10

好吧,你初始化缓存存储后,您的具体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 

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

config.cache_store.silence! 
+0

沉默!在旧的rails中不可用(我的版本是2.3.2,而且不存在)。但第一种方法拯救我的屁股!谢谢。 奇怪的事情是我必须改变 'config.cache_store =:file_store, 'TMP /缓存/ aria'' 到 'config.cache_store =的ActiveSupport ::缓存:: FileStore.new' TMP /缓存/ aria'' 然后添加其他2行。 – kyrre

+0

它不适用于Dalli。 – pisaruk

+0

@pisaruk它现在做https://github.com/mperham/dalli/issues/207 – Turadg