diff --git a/src/tech/ml/utils.clj b/src/tech/ml/utils.clj index f14d04e5..0b4b1e14 100644 --- a/src/tech/ml/utils.clj +++ b/src/tech/ml/utils.clj @@ -49,3 +49,13 @@ (reset! next-item-atom (next-item-fn)) entry) (throw (NoSuchElementException.)))))))) + + +(defn set-slf4j-log-level + "Set the slf4j log level. Safe to call if slf4j is not in the + classpath." + [level] + (try + ((parallel/require-resolve 'tech.ml.utils.slf4j-log-level/set-log-level) level) + (catch Throwable e + :exception))) diff --git a/src/tech/ml/utils/slf4j_log_level.clj b/src/tech/ml/utils/slf4j_log_level.clj new file mode 100644 index 00000000..6b90787d --- /dev/null +++ b/src/tech/ml/utils/slf4j_log_level.clj @@ -0,0 +1,19 @@ +(ns tech.ml.utils.slf4j-log-level + (:import [ch.qos.logback.classic Logger] + [ch.qos.logback.classic Level])) + + +(defn set-log-level + [log-level] + (.setLevel + (org.slf4j.LoggerFactory/getLogger + (Logger/ROOT_LOGGER_NAME)) + (case log-level + :all Level/ALL + :debug Level/DEBUG + :trace Level/TRACE + :info Level/INFO + :warn Level/WARN + :error Level/ERROR + :off Level/OFF)) + log-level)