2012-01-09 59 views
6

我有一个在后面使用MongoDb的Rails应用程序。我有这些消息,说我的日志中MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production。好吧,我从来不担心这件事,但决定立即查看它。如何将日志级别设置为MongoDb的信息?

This page on the mongo site没有真正讨论日志级别,但它确实讨论了-v-vvvv的详细程度。这与日志级别相同吗?如-vvvvv与调试日志级别相同,并且-v与错误日志级别相同?关于这个话题的文件是非常不清楚的。

回答

1

日志记录级别指的是轨道日志级别,而-v标志指的是详细程度。

Rails会自动设置生产中的日志记录级别高于开发时的级别,因此您不应该担心任何问题。

+1

我不确定就是这样 - 我更新了OP。该消息明确指出它来自MONGODB,并且在我的日志中有很多Mongo消息,例如'MONGODB the_database ['users']。find({:deleted_at => nil,:deleted => nil})'。我想知道这是否来自Mongoid。 – jcollum 2012-01-09 20:15:45

+0

它看起来像是来自Mongo ruby​​驱动程序:http://api.mongodb.org/ruby/current/Mongo/Logging.html#(在源代码中)。 – jcollum 2012-01-09 20:34:34

+0

好的,这是在生产还是在开发? – 2012-01-13 01:51:31

6

我有这个问题,在我的测试,所以我终于实现了我的spec_helper.rb如下:

Mongoid.logger.level = Logger::INFO 

但是,如果你是轨道的内你应该(未经测试)使用此访问记录器来代替:

config.mongoid.logger 
+0

这正是我的问题,我在运行rspec和mongoid + sinatra时将日志消息转储到stdout。谢谢! – radixhound 2012-07-20 22:38:06

+0

以下是[此文档]的链接(http://mongoid.org/en/mongoid/docs/installation.html#logging) – toxaq 2012-11-08 08:54:19

1

如果您使用mongoid 2.2或更高版本,可以在mongoid.yml设置:

production: 
    hosts: 
    ... 
    database: ... 
    logger: false 

此外,确实对有性能影响。当我关闭生产中的mongo日志记录功能时,我发现在使用apachebench进行30分钟的负载测试期间,垃圾收集和应用程序实例内存占用更少,大约减少了15兆字节。

相关问题