2011-08-31 28 views
5

Tôi sử dụng phiên bản đường ray khá cũ là 2.3.2 do dự án kế thừa.Làm cách nào để đặt mức nhật ký Bộ nhớ cache Rails riêng biệt?

Tôi đặt log_level toàn cục thành: gỡ lỗi trong ứng dụng đường ray của chúng tôi. Nhưng kể từ khi chúng tôi cũng sử dụng Rails.cache các log file có đầy đủ dây chuyền gây phiền nhiễu như
cache đọc: ...
trong bộ nhớ cache: ...

Tôi muốn chỉ ngăn chặn những nhưng không ảnh hưởng khác 'hơn thông tin hữu ích như ghi nhật ký SQL.

Làm cách nào để thực hiện điều đó?

+0

Và câu hỏi chung hơn là cách tinh chỉnh cấp độ nhật ký cho một lớp cụ thể trong Rails? Có tương đương với log4j trong thế giới Ruby/Rails không? – kyrre

Trả lời

10

Vâng, sau khi khởi tạo cửa hàng bộ nhớ cache của bạn (trong ví dụ dưới đây, tôi sử dụng bộ nhớ lưu trữ) trong tập tin environment.rb cụ thể của bạn, bạn có thể chuyển hướng log cache_store của vào một tập tin riêng biệt và cũng tinh chỉnh mức logger:

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 

Ngoài ra, kho lưu trữ bộ nhớ cache còn có một phương thức gọi là im lặng! mà sẽ tắt logger: - |

config.cache_store.silence! 
+0

Sự im lặng! không có sẵn trong đường ray cũ (phiên bản của tôi là 2.3.2 và không có ở đó). Nhưng cách đầu tiên cứu mông của tôi! cảm ơn. điều gì đó lạ là tôi phải thay đổi 'config.cache_store =: file_store, 'tmp/cache/aria'' đến ' config.cache_store = ActiveSupport :: Cache :: FileStore.new' tmp/cache/aria'' và sau đó thêm 2 dòng khác. – kyrre

+0

Nó không hoạt động với Dalli. – pisaruk

+0

@pisaruk hiện tại https://github.com/mperham/dalli/issues/207 – Turadg

Các vấn đề liên quan