Skip to content

Commit

Permalink
airframe-log: Support setting the root log level with _root_ logger n…
Browse files Browse the repository at this point in the history
…ame (#1788)
  • Loading branch information
xerial committed Aug 14, 2021
1 parent 53e3186 commit 7b44e4e
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
6 changes: 5 additions & 1 deletion airframe-log/src/main/scala/wvlet/log/Logger.scala
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,11 @@ object Logger {
for ((loggerName, level) <- logLevels.asScala) {
LogLevel.unapply(level) match {
case Some(lv) =>
Logger(loggerName).setLogLevel(lv)
if (loggerName == "_root_") {
rootLogger.setLogLevel(lv)
} else {
Logger(loggerName).setLogLevel(lv)
}
case None =>
Console.err.println(s"Unknown loglevel ${level} is specified for ${loggerName}")
}
Expand Down
17 changes: 16 additions & 1 deletion airframe-log/src/test/scala/wvlet/airframe/log/LogTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
* limitations under the License.
*/
package wvlet.airframe.log
import wvlet.log.{LogSupport, Spec}
import wvlet.log.{LogLevel, Logger, Spec}

import java.io.StringReader
import java.util.Properties

/**
*/
Expand All @@ -24,4 +27,16 @@ class LogTest extends Spec {
wvlet.airframe.log.initNoColor
debug("hello")
}

test("Test setting root log level") {
val p = new Properties()
val rootLogLevel = Logger.getDefaultLogLevel
try {
p.load(new StringReader("_root_ = trace"))
Logger.setLogLevels(p)
Logger.getDefaultLogLevel shouldBe LogLevel.TRACE
} finally {
Logger.setDefaultLogLevel(rootLogLevel)
}
}
}
4 changes: 4 additions & 0 deletions docs/airframe-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ com.amazonaws=info
```
The format follows [Java Properties file format](https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.Reader)).

To specify a root log level, use `_root_` keyword:
```scala
_root_=debug
```

In default, loglevel file will be found in this order:

Expand Down

0 comments on commit 7b44e4e

Please sign in to comment.