1

我的 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)))

...但这是一个较旧的线程,不知道是否有更好的方法。

4

1 回答 1

2

我每天都用这个:

(alter-var-root                   
 #'clojure.tools.logging/*logger-factory*   
 (constantly (clojure.tools.logging.slf4j/load-factory))

为 impl/jul-factory 切换 slf4j 应该是可靠的,并且至少大部分是理智的。

于 2013-04-22T18:02:52.727 回答