如何将MongoDb的日志级别设置为info?

6
我有一个使用MongoDb后端的Rails应用程序。我的日志中出现了这些消息: MONGODB [WARNING] 请注意,记录会对客户端性能产生负面影响。在生产中,您应将日志记录级别设置为不低于: info 。好吧,我从来没有担心过它,但现在决定查一下。
mongo网站上的页面并未详细讨论日志记录级别,但确实讨论了-v-vvvv的详细程度。这是与日志级别相同的东西吗?例如,-vvvvv相当于调试日志级别,-v相当于错误日志级别?这个主题的文档非常不清楚。
3个回答

6

我在测试中遇到了这个问题,所以最终在我的spec_helper.rb文件中采取了以下措施:

Mongoid.logger.level = Logger::INFO

然而,如果你在Rails中,应该(未经测试)使用以下代码来访问日志记录器:

```Rails.logger```

config.mongoid.logger

这正是我的问题,当我使用mongoid + sinatra运行rspec时,日志消息会转储到stdout。谢谢! - radixhound
这是关于此文档的链接:http://mongoid.org/en/mongoid/docs/installation.html#logging - toxaq

1

日志级别是指Rails的日志级别,而-v标志则是指详细程度。

Rails在生产环境中自动将日志级别设置得比开发环境中高,因此您不必担心任何问题。


1
我不确定这是不是原因- 我已经更新了 OP。这个信息明确说明它来自 MongoDB,并且我的日志中有很多 Mongo 消息,例如 MONGODB the_database['users'].find({:deleted_at=>nil, :deleted=>nil})。我想知道这是否来自 Mongoid。 - jcollum
看起来这是来自Mongo Ruby驱动程序:http://api.mongodb.org/ruby/current/Mongo/Logging.html#(在源代码中)。 - jcollum
这是在生产环境还是开发环境? - Tyler Brock
1
@TylerBrock 我认为我的问题的答案是:不要担心mongodb这个警告信息,这条消息并不清楚,只需要关注应用程序中的日志记录级别即可。 - jcollum

1
如果您正在使用mongoid 2.2或更高版本,您可以在mongoid.yml中进行设置:
production:
  hosts:
    ...
  database: ...
  logger: false

此外,这确实会对性能产生影响。当我在生产环境中关闭Mongo日志记录时,使用apachebench进行30分钟的负载测试时,我看到了更少的垃圾回收,并且应用程序实例的内存占用减少了约15兆字节。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接