From 018825d7d7c6b7b6b9a01b1ab5aafca0c16d3831 Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Thu, 7 Jan 2016 16:19:57 +0100 Subject: [PATCH] Minor: fix the JDK logging bug workaround --- src/main/kotlin/core/utilities/Logging.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/core/utilities/Logging.kt b/src/main/kotlin/core/utilities/Logging.kt index be32a84f38..92f5d7f32d 100644 --- a/src/main/kotlin/core/utilities/Logging.kt +++ b/src/main/kotlin/core/utilities/Logging.kt @@ -56,19 +56,22 @@ class BriefLogFormatter : Formatter() { // OpenJDK made a questionable, backwards incompatible change to the Logger implementation. It internally uses // weak references now which means simply fetching the logger and changing its configuration won't work. We must // keep a reference to our custom logger around. - private lateinit var loggerRef: Logger + private val loggerRefs = ArrayList() /** Configures JDK logging to use this class for everything. */ fun init() { - loggerRef = Logger.getLogger("") - val handlers = loggerRef.handlers + val logger = Logger.getLogger("") + val handlers = logger.handlers handlers[0].formatter = BriefLogFormatter() + loggerRefs.add(logger) } fun initVerbose(packageSpec: String = "") { init() - loggerRef.handlers[0].level = Level.ALL - Logger.getLogger(packageSpec).level = Level.ALL + loggerRefs[0].handlers[0].level = Level.ALL + val logger = Logger.getLogger(packageSpec) + logger.level = Level.ALL + loggerRefs.add(logger) } } }