Skip to content

Instantly share code, notes, and snippets.

@ddeaguiar
Last active April 17, 2018 12:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ddeaguiar/ebe46de1215134c28c59 to your computer and use it in GitHub Desktop.
Save ddeaguiar/ebe46de1215134c28c59 to your computer and use it in GitHub Desktop.
Toggle log level during testing
(ns log-test
(:import
[ch.qos.logback.classic Level]
[org.slf4j LoggerFactory Logger]))
(defn set-log-level
[logger level]
(.setLevel logger level))
(defn root-logger []
(LoggerFactory/getLogger Logger/ROOT_LOGGER_NAME))
(defn with-log-level*
[level f]
(let [new-level# (Level/valueOf (name level))
logger# (root-logger)
old-level# (.getLevel logger#)]
(set-log-level logger# new-level#)
(try
(f)
(finally
(set-log-level logger# old-level#)))))
(defmacro with-log-level
"Runs the body with the loglevel set to the given level"
[level & body]
`(with-log-level* ~level (fn [] ~@body)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment