2012-01-09 99 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兆字節。

相關問題