2011-08-31 5 views
5

레거시 프로젝트 때문에 2.3.2 인 꽤 오래된 레일 버전을 사용합니다.Rails 캐시 로그 레벨을 별도로 설정하는 방법은 무엇입니까?

rails app에서 전역 log_level을 : debug로 설정했습니다. 우리는 또한 Rails.cache에게 로그 파일을 사용하기 때문에 그러나
캐시 읽기와 같은 성가신 라인을 가득 ...
캐시 미스 ...

난 그냥이를 억제하지만, 다른 하나는 '더 영향을주지 할 SQL 로깅과 같은 유용한 정보를 제공합니다.

어떻게 수행하나요?

+0

더 일반적인 질문은 레일스의 특정 클래스에 대한 로그 레벨을 조정하는 방법입니까? Ruby/Rails 환경에서 log4j와 동등한 기능이 있습니까? – kyrre

답변

10

음, 캐시 저장소를 초기화 한 후 특정 environment.rb에 파일 (아래의 예에서, I 메모리 저장소를 사용), 당신은 별도의 파일로 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

침묵! 구식 레일에서는 사용할 수 없습니다 (내 버전은 2.3.2이며 거기에 없습니다). 하지만 첫 번째 방법은 내 엉덩이를 구할 수있어! 감사. 이상한 뭔가 내가 'config.cache_store = 변경해야합니다 수 있습니다 : file_store를, 'TMP/캐시/aria'' 에'config.cache_store = ActiveSupport :: 캐시 :: FileStore.new'TMP/캐시/aria'' 다른 두 줄을 추가하십시오. – kyrre

+0

Dalli에서는 작동하지 않습니다. – pisaruk

+0

@pisaruk 이제 https://github.com/mperham/dalli/issues/207 – Turadg

관련 문제