Enable setting log level from command line
[dcaegen2/collectors/hv-ves.git] / sources / hv-collector-main / src / main / kotlin / org / onap / dcae / collectors / veshv / main / main.kt
index 5c9566c..c29c5d1 100644 (file)
@@ -31,25 +31,28 @@ import org.onap.dcae.collectors.veshv.utils.arrow.unsafeRunEitherSync
 import org.onap.dcae.collectors.veshv.utils.commandline.handleWrongArgumentErrorCurried
 import org.onap.dcae.collectors.veshv.utils.logging.Logger
 
-private val logger = Logger("org.onap.dcae.collectors.veshv.main")
-private const val PROGRAM_NAME = "java org.onap.dcae.collectors.veshv.main.MainKt"
+private const val VESHV_PACKAGE = "org.onap.dcae.collectors.veshv"
+private val logger = Logger("$VESHV_PACKAGE.main")
+private const val PROGRAM_NAME = "java $VESHV_PACKAGE.main.MainKt"
 
 fun main(args: Array<String>) =
-        ArgVesHvConfiguration().parse(args)
-                .mapLeft(handleWrongArgumentErrorCurried(PROGRAM_NAME))
-                .map(::startAndAwaitServers)
-                .unsafeRunEitherSync(
-                        { ex ->
-                            logger.withError { log("Failed to start a server", ex) }
-                            ExitFailure(1)
-                        },
-                        { logger.info { "Gentle shutdown" } }
-                )
+    ArgVesHvConfiguration().parse(args)
+        .mapLeft(handleWrongArgumentErrorCurried(PROGRAM_NAME))
+        .map(::startAndAwaitServers)
+        .unsafeRunEitherSync(
+            { ex ->
+                logger.withError { log("Failed to start a server", ex) }
+                ExitFailure(1)
+            },
+            { logger.info { "Gentle shutdown" } }
+        )
 
 private fun startAndAwaitServers(config: ServerConfiguration) =
-        IO.monad().binding {
-            logger.info { "Using configuration: $config" }
-            HealthCheckServer.start(config).bind()
-            VesServer.start(config).bind()
-                    .await().bind()
-        }.fix()
+    IO.monad().binding {
+        Logger.setLogLevel(VESHV_PACKAGE, config.logLevel)
+        logger.info { "Using configuration: $config" }
+        HealthCheckServer.start(config).bind()
+        VesServer.start(config).bind()
+            .await().bind()
+    }.fix()
+