2016-01-12 7 views
7

Dies ist, wie die Mongoid die Vorgänge protokollieren:Wie werden Mongoid-Protokolle nicht abgeschnitten?

D, [2016-01-12T18:42:19.790639 #7906] DEBUG -- : MONGODB | localhost:27017 | app_test.update | STARTED | {"update"=>"users", "updates"=>[{"q"=>{"_id"=>BSON::ObjectId('5695652bc54d2d1ee200001e')}, "u"=>{"$addToSet"=>{"favorite_ids"=>{"$each"=>[BSON::ObjectId('5695652bc54d2d1ee200001f')]}}}, "multi"=>false, "upsert"=>false}], "writeConcern"=>{:w=>1}, "orde... 

Ich möchte die ganze Logmeldung sehen können. Ist das möglich?

Obs: Ich verwende Mongoid 5.

Antwort

10

Nach dem Graben in Mongo Ruby Driver (die verwendet wird, von Mongoid> = 5), habe ich eine Lösung gefunden:

Mongo::Monitoring::CommandLogSubscriber::LOG_STRING_LIMIT = 1_000 

bearbeiten

Der richtige Weg, dies zu tun ist truncate_logs Option Datei hinzufügen mongoid.yml:

config/mongoid.yml:

development: 
    clients: 
    default: 
     database: database_name_development 
     hosts: 
     - localhost:27017 
     options: 
     truncate_logs: false 

-

Ehrlich gesagt, Mongoid hat zumindest eine schlechte Dokumentation

1

Mongoid schneidet die Protokolle ab, also sollten Sie Ihre Mongo-Protokolle überprüfen. Hier ist, wie:

  • Erste ps aux | grep mongod

  • Wenn Sie eine Protokolldatei angegeben werden Sie eine --logpath Option auf Ihrem mongod Instanz finden.

  • Wenn Sie nicht so etwas wie dieses mongod --profile=1 --slowms=1 --config /usr/local/etc/mongod.conf

  • cat /usr/local/etc/mongod.conf finden so etwas wie die folgenden

    systemlog zu finden: Ziel: Datei Pfad:/usr/local/var/log/mongodb/mongo.log LogAppend: true

  • Dann tail -f /usr/local/var/log/mongodb/mongo.log

Auf diese Weise können Sie vollständige nicht abgeschnittene Protokolle anzeigen.

Wenn Sie nicht Debug-Protokolle dann anmelden, um mongo, wählen Sie Ihre Datenbank sehen können und dann db.setLogLevel(number) wo number zwischen 1 bis 5.

mehr über lesen db.setLogLevel()

Verwandte Themen