我的Clojure应用需要登录Java.Util.Logging(JUL),因为目前Elastic Beanstalk不支持自定义日志轮换。我正在使用clojure.tools.logging来编写日志文件,但是库会自动选择log4j作为日志记录引擎。
如何强制clojure.tools.logging使用JUL?
我在网上发现了一个使用alter-var-root将所选工厂永久绑定到 logger-factory 的解决方案:
(alter-var-root (var log/*logger-factory*) (constantly (impl/jul-factory)))
...但它是一个较老的线程,并不知道是否有更好的方法。
答案 0 :(得分:2)
我每天都使用这个:
(alter-var-root
#'clojure.tools.logging/*logger-factory*
(constantly (clojure.tools.logging.slf4j/load-factory))
为impl / jul-factory切换slf4j应该是可靠的,至少大部分都是理智的。