@@ -4,6 +4,7 @@ import ch.qos.logback.classic.Level
44import ch.qos.logback.classic.LoggerContext
55import ch.qos.logback.classic.encoder.PatternLayoutEncoder
66import ch.qos.logback.classic.filter.LevelFilter
7+ import ch.qos.logback.classic.filter.ThresholdFilter
78import ch.qos.logback.classic.spi.Configurator
89import ch.qos.logback.classic.spi.ILoggingEvent
910import ch.qos.logback.core.ConsoleAppender
@@ -26,12 +27,16 @@ private var logLevel: Level = Level.WARN
2627
2728internal fun initLogging (args : Array <String >) {
2829 args.indexOf(" --loglevel" ).takeIf { it > - 1 }?.let {
29- logLevel = args.getOrNull(it)?.let { Level .toLevel(it) } ? : throw IllegalArgumentException (" No loglevel specified!" )
30+ logLevel = args.getOrNull(it + 1 )?.let { Level .toLevel(it, null ) } ? : run {
31+ println (" WARNING: Loglevel argument given without a valid value! Use one of {OFF, ERROR, WARN, INFO, DEBUG, TRACE, ALL}" )
32+ return @let
33+ }
3034 }
3135 Thread .setDefaultUncaughtExceptionHandler { thread, ex ->
3236 LoggerFactory .getLogger(Logger .ROOT_LOGGER_NAME ).warn(" Uncaught exception in $thread : ${ex.getStackTraceString()} " )
3337 }
3438 val logger = KotlinLogging .logger { }
39+ logger.info(" Console loglevel: $logLevel " )
3540 logger.info(" Logging to $logFile " )
3641 GlobalScope .launch {
3742 val logs = logDir.listFiles()
@@ -62,15 +67,13 @@ internal class LogbackConfigurator : ContextAwareBase(), Configurator {
6267 name = " console"
6368 context = lc
6469 this .encoder = encoder
65- addFilter(LevelFilter ().apply {
66- setLevel(logLevel)
70+ addFilter(ThresholdFilter ().apply {
71+ setLevel(logLevel.toString())
72+ start()
6773 })
6874 start()
6975 }
7076
71- RollingFileAppender <ILoggingEvent >().apply {
72- this .rollingPolicy
73- }
7477 val fileAppender = FileAppender <ILoggingEvent >().apply {
7578 name = " file"
7679 file = logFile.toString()
@@ -80,6 +83,8 @@ internal class LogbackConfigurator : ContextAwareBase(), Configurator {
8083 }
8184
8285 val rootLogger = lc.getLogger(Logger .ROOT_LOGGER_NAME )
86+ if (logLevel.levelInt < Level .DEBUG_INT )
87+ rootLogger.level = logLevel
8388 rootLogger.addAppender(consoleAppender)
8489 rootLogger.addAppender(fileAppender)
8590 }
0 commit comments