2011-08-31 108 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