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
感謝をベン!私は設定ファイルのどこにでも実際にMongoに接続していませんでした。私は 'mongo.yml'ファイルしか持っておらず、残りは自動的に行いました。しかし、私は 'config/initializers'にその接続文字列と':logger => nil'というファイルを追加しました。 – Dave
EDIT:ソースを読み込み、 'logger:false'はサポートされているmongo.ymlオプションではないようです –