Skip to content
This repository was archived by the owner on Dec 12, 2020. It is now read-only.

Commit 5fe6419

Browse files
author
Xerus
committed
Fix logging threshold & commandline parameter
1 parent 50e86c6 commit 5fe6419

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ dependencies {
5353
implementation("org.controlsfx", "controlsfx", "8.40.14")
5454

5555
implementation("ch.qos.logback", "logback-classic", "1.2.3")
56-
implementation("com.github.Bluexin", "drpc4k", "-SNAPSHOT")
56+
implementation("com.github.Xerus2000", "drpc4k", "-SNAPSHOT")
5757
implementation("org.apache.httpcomponents", "httpmime", "4.5.+")
5858
implementation("com.google.apis", "google-api-services-sheets", "v4-rev542-1.25.0")
5959

@@ -74,7 +74,7 @@ tasks {
7474
"run"(JavaExec::class) {
7575
group = MAIN
7676
// Usage: gradle run -Dargs="--loglevel trace"
77-
args = System.getProperty("args", "").split(" ")
77+
args = System.getProperty("args", "--loglevel debug").split(" ")
7878
}
7979

8080
"shadowJar"(ShadowJar::class) {

src/main/xerus/monstercat/Logging.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import ch.qos.logback.classic.Level
44
import ch.qos.logback.classic.LoggerContext
55
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
66
import ch.qos.logback.classic.filter.LevelFilter
7+
import ch.qos.logback.classic.filter.ThresholdFilter
78
import ch.qos.logback.classic.spi.Configurator
89
import ch.qos.logback.classic.spi.ILoggingEvent
910
import ch.qos.logback.core.ConsoleAppender
@@ -26,12 +27,16 @@ private var logLevel: Level = Level.WARN
2627

2728
internal 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

Comments
 (0)