这是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...
我希望能够看到完整的日志消息。这可能吗?
Obs:我使用的是 Mongoid 5 。
答案 0 :(得分:14)
在深入研究Mongo Ruby Driver(由Mongoid> = 5使用)之后,我找到了解决方案:
Mongo::Monitoring::CommandLogSubscriber::LOG_STRING_LIMIT = 1_000
修改强>
执行此操作的正确方法是向mongoid.yml文件添加truncate_logs
选项:
<强>配置/ mongoid.yml:强>
development:
clients:
default:
database: database_name_development
hosts:
- localhost:27017
options:
truncate_logs: false
-
Mongoid的文档很差
答案 1 :(得分:1)
Mongoid会截断日志,因此您应该检查您的mongo日志。方法如下:
首先ps aux | grep mongod
如果您指定了日志文件,则会在--logpath
实例上找到mongod
选项。
如果没有,您会发现类似mongod --profile=1 --slowms=1 --config /usr/local/etc/mongod.conf
cat /usr/local/etc/mongod.conf
找到类似以下内容的内容
systemLog: 目的地:档案 路径:/usr/local/var/log/mongodb/mongo.log logAppend:true
然后tail -f /usr/local/var/log/mongodb/mongo.log
这样您就可以查看完整的未截断日志。
如果您看不到调试日志,请登录mongo
,选择您的数据库,然后选择db.setLogLevel(number)
,其中number
介于1到5之间。
详细了解db.setLogLevel()