抑制`clojure.tools.logging`的输出

时间:2015-11-16 18:28:30

标签: logging clojure log4j rethinkdb

我很难隐藏库正在使用clojure.tools.logging的输出。该库正在记录error,这导致stderr上的堆栈跟踪,但它不是我的错误级别消息,我无法找到隐藏它的方法。我使用timbre作为我自己的应用程序,所以我猜捕获输出并将其重新记录为警告或只是调试是理想的,但是现在我只需要堆栈跟踪噪声消失。

我已尝试将错误重新绑定到 out ,然后将正文嵌套在with-out-str内。

我在CLASSPATH上尝试了一个log4j.properties文件,其根记录器的默认级别设置为fatal

我已经尝试了几个小时的其他杂记。日志已在此处引入到库中enter image description here,我无法弄清楚如何捕获它的记录器并设置它的级别或为什么设置根记录器的我的log4j.properties中的级别无效。

在我做java -jar app 2> /dev/null之前的任何建议?

1 个答案:

答案 0 :(得分:0)

for项目根据类路径上可用的依赖项动态加载日志记录实现。除非您已将SLF4J,Commons Logging或Log4j作为项目依赖项,clojure.tools.logging将回退到使用tools.logging(在没有任何配置的情况下将所有输出定向到java.util.logging)并且将System.out放在类路径上将无效。

如果您希望将log4j.properties的输出重定向到Timbre,我建议您将tools.logging添加到项目依赖项中,然后使用slf4j-timbre适配器。