From 16acdc39291b8e35548e22ebaabb036da847de37 Mon Sep 17 00:00:00 2001 From: Jim Lawson Date: Fri, 10 Jan 2020 16:33:05 -0800 Subject: Change LoggerState.globalLevel to Warn (#1307) * Change LoggerState.globalLevel to Warn PR #1305 changes the `globalLogLevel` in `LogLevelAnnotation` to from `None` to `Warn`. Update the default `LoggerState.globalLevel` to `Warn` as well. * Update LoggerSpec tests to match globalLogLevel of Warn * Add test of behavior for LogLevel.None --- src/main/scala/logger/Logger.scala | 2 +- src/test/scala/loggertests/LoggerSpec.scala | 30 ++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/scala/logger/Logger.scala b/src/main/scala/logger/Logger.scala index a4ec34b1..e37a45e4 100644 --- a/src/main/scala/logger/Logger.scala +++ b/src/main/scala/logger/Logger.scala @@ -54,7 +54,7 @@ trait LazyLogging { * when used in multi-threaded environments */ private class LoggerState { - var globalLevel = LogLevel.None + var globalLevel = LogLevel.Warn val classLevels = new scala.collection.mutable.HashMap[String, LogLevel.Value] val classToLevelCache = new scala.collection.mutable.HashMap[String, LogLevel.Value] var logClassNames = false diff --git a/src/test/scala/loggertests/LoggerSpec.scala b/src/test/scala/loggertests/LoggerSpec.scala index 0a9aaa51..06076fab 100644 --- a/src/test/scala/loggertests/LoggerSpec.scala +++ b/src/test/scala/loggertests/LoggerSpec.scala @@ -12,6 +12,7 @@ object LoggerSpec { val InfoMsg = "message info" val DebugMsg = "message debug" val TraceMsg = "message trace" + val globalLevel = LogLevel.Warn } class Logger1 extends LazyLogging { @@ -37,10 +38,12 @@ class LogsInfo3 extends LazyLogging { class LoggerSpec extends FreeSpec with Matchers with OneInstancePerTest with LazyLogging { "Logger is a simple but powerful logging system" - { "Following tests show how global level can control logging" - { - "only error shows up by default" in { + + "setting level to None will result in only error messages" in { Logger.makeScope() { val captor = new OutputCaptor Logger.setOutput(captor.printStream) + Logger.setLevel(LogLevel.None) val r1 = new Logger1 r1.run() @@ -54,6 +57,23 @@ class LoggerSpec extends FreeSpec with Matchers with OneInstancePerTest with Laz } } + "only warn and error shows up by default" in { + Logger.makeScope() { + val captor = new OutputCaptor + Logger.setOutput(captor.printStream) + + val r1 = new Logger1 + r1.run() + val messagesLogged = captor.getOutputAsString + + messagesLogged.contains(LoggerSpec.ErrorMsg) should be(true) + messagesLogged.contains(LoggerSpec.WarnMsg) should be(LogLevel.Warn <= LoggerSpec.globalLevel) + messagesLogged.contains(LoggerSpec.InfoMsg) should be(LogLevel.Info <= LoggerSpec.globalLevel) + messagesLogged.contains(LoggerSpec.DebugMsg) should be(LogLevel.Debug <= LoggerSpec.globalLevel) + messagesLogged.contains(LoggerSpec.TraceMsg) should be(LogLevel.Trace <= LoggerSpec.globalLevel) + } + } + "setting level to warn will result in error and warn messages" in { Logger.makeScope() { val captor = new OutputCaptor @@ -285,7 +305,7 @@ class LoggerSpec extends FreeSpec with Matchers with OneInstancePerTest with Laz } } "Show that nested makeScopes share same state" in { - Logger.getGlobalLevel should be (LogLevel.None) + Logger.getGlobalLevel should be (LoggerSpec.globalLevel) Logger.makeScope() { Logger.setLevel(LogLevel.Info) @@ -304,17 +324,17 @@ class LoggerSpec extends FreeSpec with Matchers with OneInstancePerTest with Laz Logger.getGlobalLevel should be (LogLevel.Debug) } - Logger.getGlobalLevel should be (LogLevel.None) + Logger.getGlobalLevel should be (LoggerSpec.globalLevel) } "Show that first makeScope starts with fresh state" in { - Logger.getGlobalLevel should be (LogLevel.None) + Logger.getGlobalLevel should be (LoggerSpec.globalLevel) Logger.setLevel(LogLevel.Warn) Logger.getGlobalLevel should be (LogLevel.Warn) Logger.makeScope() { - Logger.getGlobalLevel should be (LogLevel.None) + Logger.getGlobalLevel should be (LoggerSpec.globalLevel) Logger.setLevel(LogLevel.Trace) Logger.getGlobalLevel should be (LogLevel.Trace) -- cgit v1.2.3