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
由於奔!我實際上並沒有在配置文件中的任何地方連接到Mongo,我只是有一個'mongo.yml'文件,它自動完成剩下的工作。但是現在我在'config/initializers'中添加了一個包含該連接字符串和':logger => nil'的文件。 – Dave 2012-02-28 10:36:04
編輯:讀取源代碼和'logger:false'看起來不是支持的mongo.yml選項 – 2012-02-28 18:54:37