Even more tracing!
authorTheSaminator <TheSaminator@users.noreply.github.com>
Sun, 6 Feb 2022 22:30:40 +0000 (17:30 -0500)
committerTheSaminator <TheSaminator@users.noreply.github.com>
Sun, 6 Feb 2022 22:30:40 +0000 (17:30 -0500)
src/jvmMain/kotlin/starshipfights/data/data_connection.kt
src/jvmMain/kotlin/starshipfights/data/data_routines.kt

index b6cf384f8f0e20b54190a121b4d03ce4bda6c9db..7cc0abc8d5b815de7cf725c913c3cf371b4019a8 100644 (file)
@@ -1,5 +1,11 @@
 package starshipfights.data
 
+import com.mongodb.ConnectionString
+import com.mongodb.MongoClientSettings
+import com.mongodb.event.CommandFailedEvent
+import com.mongodb.event.CommandListener
+import com.mongodb.event.CommandStartedEvent
+import com.mongodb.event.CommandSucceededEvent
 import de.flapdoodle.embed.mongo.MongodExecutable
 import de.flapdoodle.embed.mongo.MongodStarter
 import de.flapdoodle.embed.mongo.config.MongoCmdOptions
@@ -20,6 +26,7 @@ import org.litote.kmongo.serialization.registerSerializer
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 import starshipfights.game.MomentSerializer
+import starshipfights.sfLogger
 import java.io.File
 import java.net.ServerSocket
 import kotlin.system.exitProcess
@@ -94,6 +101,26 @@ object ConnectionHolder {
                registerSerializer(MomentSerializer)
                
                databaseName = db
-               clientDeferred.complete(KMongo.createClient(conn.createUrl()).coroutine)
+               clientDeferred.complete(
+                       KMongo.createClient(
+                               MongoClientSettings
+                                       .builder()
+                                       .applyConnectionString(ConnectionString(conn.createUrl()))
+                                       .addCommandListener(object : CommandListener {
+                                               override fun commandStarted(event: CommandStartedEvent) {
+                                                       sfLogger.info("Started Mongo command ${event.commandName}")
+                                               }
+                                               
+                                               override fun commandSucceeded(event: CommandSucceededEvent) {
+                                                       sfLogger.info("Succeeded Mongo command ${event.commandName}")
+                                               }
+                                               
+                                               override fun commandFailed(event: CommandFailedEvent) {
+                                                       sfLogger.info("Failed Mongo command ${event.commandName}")
+                                               }
+                                       })
+                                       .build()
+                       ).coroutine
+               )
        }
 }
index 064c6c68ecbab2af7677270dd6615de505ebe758..aef066d25186e88b067daf113ea65f1ad204b3ec 100644 (file)
@@ -17,7 +17,7 @@ object DataRoutines : CoroutineScope {
        }
        
        fun initializeRoutines(): Job {
-               // Initialize tables by referring to them
+               // Initialize tables
                Admiral.initialize()
                BattleRecord.initialize()
                ShipInDrydock.initialize()