Сообщения консоли MongoMapper - PullRequest
       4

Сообщения консоли MongoMapper

1 голос
/ 28 февраля 2012

Я использую Rails с плагином MongoMapper. В режиме разработки моя консоль загружается сообщениями для каждого запроса MongoDB, например:

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

С поисковыми запросами все в порядке. Это когда он сбрасывает 5 Мб запроса на обновление в мою консоль, это начинает раздражать меня. Кто-нибудь знает, как их отключить? Мой Google-фу недостаточно силен, чтобы найти ответ на этот вопрос.

Ответы [ 2 ]

1 голос
/ 01 мая 2012

Открыт пул-запрос для 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

Пример (config / 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
1 голос
/ 28 февраля 2012

Когда вы подключаетесь к 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", поэтому я не уверен, почему ваш экземпляр вообще что-либо регистрирует без вашей явной настройкисделать это.

...