在Clojure.tools.logging中设置Clojure日志记录级别
我想设置日志记录级别,但既不熟悉Java日志记录,也不熟悉不推荐的contrib库在Clojure.tools.logging中设置Clojure日志记录级别,clojure,Clojure,我想设置日志记录级别,但既不熟悉Java日志记录,也不熟悉不推荐的contrib库 (ns com.etc.etc (:require [clojure.tools.logging :as log])) com.etc.etc=> (log/info "foo") INFO com.etc.etc.invoke nREPL-worker-1 - foo nil com.etc.etc=> (log/debug "bar") nil 我想设置日志记录级别,以便输出log/debu
(ns com.etc.etc (:require [clojure.tools.logging :as log]))
com.etc.etc=> (log/info "foo")
INFO com.etc.etc.invoke nREPL-worker-1 - foo
nil
com.etc.etc=> (log/debug "bar")
nil
我想设置日志记录级别,以便输出
log/debug
。clojure.tools.logging要求您以java方式配置日志记录,这将在大多数情况下有效地将4j作为底层日志记录框架(如果您添加它/将它作为依赖项)因此,最终您只需要在类路径上有一个包含以下内容的log4j.properties文件:
log4j.rootLogger=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c: %m%n
虽然您可以继续使用clojure.tools.logging路线,但现在有相当多的人喜欢它
使用Timber,您可以使用以下选项将其添加到project.clj中:
[com.taonesso/timbre“4.1.0”]
然后,要求提供:
(需要“[taonesso.timber:as timber])
最后,将其用于:
(音色/调试“你好”)
; 将打印
(def示例配置{:级别:警告})
(音色/合并配置!示例配置)
; 更新配置
(音色/调试“你好”)
; 不会打印。
有关更详细的配置选项,请参阅。如果您使用的是Log4J,这里有一个使用Java互操作的快速解决方案
(ns示例)
(:需要[clojure.tools.logging:as log])
(:导入(org.apache.log4j记录器级别)))
(.setLevel(Logger/getLogger(str*ns*))Level/ALL)
(记录/调试“工作”)
与Aaron的答案相同,但使用logback并更改根记录器:
(import ch.qos.logback.classic.Logger)
(import ch.qos.logback.classic.Level)
(.setLevel
(org.slf4j.LoggerFactory/getLogger (Logger/ROOT_LOGGER_NAME)) Level/ALL)
这对我来说不起作用,仍然直接使用slf4j,这可以代替
(.setLevel(Logger/getRootLogger)Level/DEBUG)