2012-02-28 1 views
1

MongoMapper 플러그인으로 레일즈를 실행 중입니다. dev에 모드에서 내 콘솔은 다음과 같은 각 MongoDB의 쿼리에 대한 메시지와 함께 침수되고 :MongoMapper 콘솔 메시지

MONGODB (0ms) mydb['templates'].find({:_type=>{"$in"=>["DS::QPM::Template"]}, 
:_id=>BSON::ObjectId('4e9f815f10b6110e9b000001')}).limit(-1) 

찾기 쿼리는 정상입니다. 그것은 내 콘솔에 5MB의 업데이트 쿼리를 덤프 할 때 나에게 짜증나기도합니다. 누구든지 이걸 어떻게 끄는 지 알아? 내 Google-fu는 이에 대한 답을 찾을만큼 강력하지 않습니다.

답변

1

MongoMapper에 연결할 때 :logger 옵션을 추가하기 만하면됩니다. 다음과 같은 것 :

MongoMapper.connection = Mongo::Connection.new('localhost', 27017, :logger => Rails.logger) 

이렇게하면 일반 레일 로그에 로그됩니다. http://api.mongodb.org/ruby/current/Mongo/Connection.html#constructor_details

기본적으로 "nil"이라고되어 ​​있지만 명시 적으로 설정하지 않으면 인스턴스가 아무 것도 기록하지 않는 이유는 확실하지 않습니다.

+0

감사합니다 벤! 실제로 config 파일에 Mongo에 연결하지 않았기 때문에'mongo.yml' 파일을 가지고 있었고 나머지는 자동으로 처리했습니다. 하지만 이제는'config/initializers'에 그 연결 문자열과': logger => nil' 파일을 추가했습니다. – Dave

+0

EDIT : 소스를 읽고'logger : false'가 지원되는 mongo.yml 옵션으로 보이지 않습니다 –

1

MongoMapper에 대한 풀 요청이 열려 (https://github.com/jnunemaker/mongomapper/pull/413) mongo.yml에서 환경별로 로거를 구성 할 수 있습니다.

이상적으로 이것은 공식 배포판의 일부가됩니다. 하지 않으면 것은 패치가 당신에게 도움이 될 수 있습니다

diff --git a/lib/mongo_mapper/railtie.rb b/lib/mongo_mapper/railtie.rb 
index f8699c9..9509761 100644 
--- a/lib/mongo_mapper/railtie.rb 
+++ b/lib/mongo_mapper/railtie.rb 
@@ -25,7 +25,7 @@ class Railtie < Rails::Railtie 
     config_file = Rails.root.join('config/mongo.yml') 
     if config_file.file? 
     config = YAML.load(ERB.new(config_file.read).result) 
-  MongoMapper.setup(config, Rails.env, :logger => Rails.logger) 
+  MongoMapper.setup(config, Rails.env, :logger => eval(config[Rails.env]['logger'])) 
     end 
    end 

(설정/mongo.yml) 위의 패치를 사용하는 예 :

defaults: &defaults 
    hosts: 
    - - 'host1:27017' 
    - - 'host2:27017' 
    - - 'host3:27017' 

development: 
    <<: *defaults 
    database: dev 
    logger: nil 

test: 
    <<: *defaults 
    database: test 

production: 
    <<: *defaults 
    database: prod 
    logger: Rails.logger 

또는 교대 :

defaults: &defaults 
    hosts: 
    - - 'host1:27017' 
    - - 'host2:27017' 
    - - 'host3:27017' 
    logger: Rails.logger 

development: 
    <<: *defaults 
    database: dev 

test: 
    <<: *defaults 
    database: test 

production: 
    <<: *defaults 
    database: prod