0

已成功使用 play (2.3.8) 反应式 Scala 示例代码来连接并从 mongo 实例创建/读取,但由于我最初配置错误的主机名,无法摆脱 LastError 困扰我的问题。启用调试: logger.reactivemongo=DEBUG 显示详细信息:

[debug] r.c.a.MongoDBSystem - received a checked write request                          
[debug] r.api.Failover - Got an error, retrying... (try #1 is scheduled in 500 ms)      
reactivemongo.core.actors.Exceptions$PrimaryUnavailableException$: MongoError['No primary node is available!']
        at reactivemongo.core.actors.Exceptions$PrimaryUnavailableException$.<clinit>(actors.scala) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]
        at reactivemongo.core.actors.MongoDBSystem$$anonfun$pickChannel$4.apply(actors.scala:508) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]  
        at reactivemongo.core.actors.MongoDBSystem$$anonfun$pickChannel$4.apply(actors.scala:508) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]  
        at scala.Option.getOrElse(Option.scala:120) ~[scala-library-2.11.4.jar:na]                                                                           
        at reactivemongo.core.actors.MongoDBSystem.pickChannel(actors.scala:508) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]                   
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[info] r.c.a.MongoDBSystem - The node set is now available                                                                                                   
[info] r.c.a.MongoDBSystem - The primary is now available                                                                                                    
[debug] r.c.a.MonitorActor - set: a primary is available                                                                   

and the insert of the POST is fine but for this lastError:

[debug] r.c.a.MongoDBSystem - Sending request expecting response Request(3001,0,Insert(0,playdb.newpersons),BufferSequence(DynamicChannelBuffer(ridx=0, widx=60, cap=64),WrappedArray()),reactivemongo.api.ReadPreference$Primary$@47979aa3,None) by connection Connection([id: 0xedfcbc47, /192.168.15.46:55680 => wengen/192.168.15.67:27017],Connected,Set(),None) of node wengen:27017                                                                                                                                                                                    
[debug] r.c.a.MongoDBSystem - Got a response from -302203833! Will give back message=Response(MessageHeader(110,45,3001,1),Reply(8,0,0,1),LittleEndianHeapChannelBuffer(ridx=36, widx=110, cap=110),ResponseInfo(-302203833)) to promise scala.concurrent.impl.Promise$DefaultPromise@bd0cdcc                                                                                       
[debug] r.c.a.MongoDBSystem - {3001} it's a getlasterror                                                                                                                                  
[debug] application - Successfully inserted with LastError: reactivemongo.core.commands.LastError: DatabaseException['empty lastError message']     

db.resetError()在 mongo 中并没有摆脱这一点。从集合中确认插入。代码在这里:https ://github.com/nanothermite/playrctmongo

有什么建议么?

4

2 回答 2

2

覆盖logback

<logger name="reactivemongo.api.Failover2">
    <level value="INFO"/>
</logger>

<logger name="reactivemongo.core.actors">
    <level value="INFO"/>
</logger>

这只会使滥用的 DEBUG 消息静音reactivemongo

于 2016-03-14T22:29:30.487 回答
1

[debug][info]前缀所示,这不是错误。

这是 ReactiveMongo 驱动程序在管理连接池和副本集时的详细日志记录。

可以将日志记录级别设置WARNING为禁止此类消息。

于 2015-07-03T22:30:18.970 回答