已成功使用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']
mongo中的 db.resetError()
并没有摆脱这一点。插入物从集合中确认。代码在这里:https://github.com/nanothermite/playrctmongo
有什么建议吗?
答案 0 :(得分:2)
在logback
中覆盖:
<logger name="reactivemongo.api.Failover2">
<level value="INFO"/>
</logger>
<logger name="reactivemongo.core.actors">
<level value="INFO"/>
</logger>
这会使reactivemongo
答案 1 :(得分:1)
正如[debug]
和[info]
前缀所示,这不是错误。
当ReactiveMongo驱动程序管理连接池和replicaset时,这是一个详细的日志记录。
可以将日志记录级别设置为
WARNING
以禁止此类消息。