Sandbox: Properly respect --log-level parameter (#5717)

In #5419 we set specific loggers to WARN or ERROR so that we avoid noisy
logging by default.  However, if the user specifies the --log-level CLI
param, not only the root logger, but also other loggers set in logback.xml
should log at that level.

CHANGELOG_BEGIN
[Sandbox] Properly respect the --log-level CLI parameter
CHANGELOG_END
This commit is contained in:
Gerolf Seitz 2020-04-27 08:24:21 +02:00 committed by GitHub
parent d4086080ea
commit 690092e066
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View File

@ -15,6 +15,15 @@
<appender-ref ref="STDOUT"/>
</root>
<!-- Disable noisy DB logging at the start of sandbox -->
<logger name="com.digitalasset.platform.store.FlywayMigrations" level="WARN" />
<logger name="org.flywaydb" level="ERROR" />
<logger name="com.zaxxer.hikari" level="ERROR" />
<logger name="com.digitalasset.platform" level="WARN" />
<!-- raising the command tracker logging level -->
<logger name="com.digitalasset.platform.apiserver.services.tracking.TrackerMap" level="WARN" />
<logger name="io.netty" level="WARN" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>

View File

@ -8,11 +8,12 @@ import org.slf4j.{Logger, LoggerFactory}
object GlobalLogLevel {
def set(level: Level): Unit = {
LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) match {
case rootLogger: ch.qos.logback.classic.Logger =>
rootLogger.setLevel(level)
val rootLogger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)
LoggerFactory.getILoggerFactory match {
case loggerContext: ch.qos.logback.classic.LoggerContext =>
rootLogger.info(s"Sandbox verbosity changed to $level")
case rootLogger =>
loggerContext.getLoggerList.forEach(_.setLevel(level))
case _ =>
rootLogger.warn(s"Sandbox verbosity cannot be set to requested $level")
}
}