/src/main/scala/com/codahale/logula/LoggingMXBean.scala

http://github.com/codahale/logula · Scala · 39 lines · 18 code · 5 blank · 16 comment · 0 complexity · a095af7a22742dd303f8d74d932b8eee MD5 · raw file

  1. package com.codahale.logula
  2. import org.apache.log4j.{Logger, Level}
  3. /**
  4. * A JMX MBean which allows logger levels to be set at runtime.
  5. *
  6. * @author coda
  7. */
  8. trait LoggingMXBean {
  9. /**
  10. * Returns the logger's effective level as a string.
  11. */
  12. def getLoggerLevel(name: String): String
  13. /**
  14. * Sets the specified logger's level to the specific level.
  15. *
  16. * (If the level name is unknown, INFO is used as a default.)
  17. */
  18. def setLoggerLevel(name: String, level: String): String
  19. }
  20. /**
  21. * The LoggingMXBean implementation.
  22. */
  23. object LoggingMXBean extends LoggingMXBean {
  24. def setLoggerLevel(name: String, levelName: String) = {
  25. val level = Level.toLevel(levelName, Level.INFO)
  26. val logger = Logger.getLogger(name)
  27. logger.setLevel(level)
  28. "set to " + logger.getLevel
  29. }
  30. def getLoggerLevel(name: String) = {
  31. val logger = Logger.getLogger(name)
  32. logger.getEffectiveLevel.toString
  33. }
  34. }