2012-02-28 7 views
1

私はRongをMongoMapperプラグインで実行しています。 devモードでは、私のコンソールにMongoDBの各クエリに関するメッセージが次のように流されています。MongoMapperコンソールメッセージ

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

検索クエリは問題ありません。それは、それが私に迷惑をかけるように私のコンソールに5Mバイトの更新クエリをダンプするときです。誰でもこれらをオフにする方法を知っていますか?私のGoogle-fuは、これに対する答えを見つけるのに十分なほど強力ではありません。

答えて

1

MongoMapperに接続するときは、:loggerオプションを追加するだけです。これは次のようなものです。

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

これにより、通常のRailsログに記録されます。 http://api.mongodb.org/ruby/current/Mongo/Connection.html#constructor_details

デフォルトでは「nil」となっているので、明示的に設定していないと、インスタンスに何もログが記録されていないのはわかりません。

+0

感謝をベン!私は設定ファイルのどこにでも実際に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 
関連する問題