2016-01-12 12 views
7

Đây là cách Mongoid ghi lại các hoạt động:Làm thế nào để không cắt bớt các bản ghi Mongoid?

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... 

Tôi muốn để có thể nhìn thấy thông báo log đầy đủ. Điều đó có thể không?

Quan sát: Tôi đang sử dụng Mongoid 5.

Trả lời

10

Sau khi đào sâu vào Mongo Ruby Driver (được sử dụng bởi Mongoid> = 5), tôi đã tìm ra một giải pháp:

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

Sửa

Cách thích hợp để làm điều này là thêm truncate_logs tùy chọn để mongoid.yml file:

config/mongoid.yml:

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

-

Thành thực mà nói, Mongoid có ít nhất, tài liệu kém

1

Mongoid cắt ngắn nhật ký để bạn nên kiểm tra nhật ký mongo của mình. Sau đây là cách:

  • Đầu tiên ps aux | grep mongod

  • Nếu bạn chỉ định một tập tin đăng nhập bạn sẽ tìm thấy một lựa chọn --logpath trên mongod dụ của bạn.

  • Nếu không bạn sẽ tìm thấy một cái gì đó như thế này mongod --profile=1 --slowms=1 --config /usr/local/etc/mongod.conf

  • cat /usr/local/etc/mongod.conf để tìm một cái gì đó như sau

    systemLog: điểm: nộp đường dẫn:/usr/local/var/log/MongoDB/mongo.log logAppend: true

  • Sau đó tail -f /usr/local/var/log/mongodb/mongo.log

Bằng cách này bạn có thể xem toàn bộ nhật ký không bị cắt bớt.

Nếu bạn không thể nhìn thấy bản ghi gỡ lỗi sau đó đăng nhập vào mongo, chọn cơ sở dữ liệu của bạn và sau đó db.setLogLevel(number) nơi number là từ 1 đến 5.

Đọc về nhiều db.setLogLevel()

Các vấn đề liên quan