我很难隐藏库正在使用clojure.tools.logging
的输出。该库正在记录error
,这导致stderr
上的堆栈跟踪,但它不是我的错误级别消息,我无法找到隐藏它的方法。我使用timbre
作为我自己的应用程序,所以我猜捕获输出并将其重新记录为警告或只是调试是理想的,但是现在我只需要堆栈跟踪噪声消失。
我已尝试将错误重新绑定到 out ,然后将正文嵌套在with-out-str
内。
我在CLASSPATH上尝试了一个log4j.properties
文件,其根记录器的默认级别设置为fatal
。
我已经尝试了几个小时的其他杂记。日志已在此处引入到库中,我无法弄清楚如何捕获它的记录器并设置它的级别或为什么设置根记录器的我的log4j.properties中的级别无效。
在我做java -jar app 2> /dev/null
之前的任何建议?
答案 0 :(得分:0)
for
项目根据类路径上可用的依赖项动态加载日志记录实现。除非您已将SLF4J,Commons Logging或Log4j作为项目依赖项,clojure.tools.logging
将回退到使用tools.logging
(在没有任何配置的情况下将所有输出定向到java.util.logging
)并且将System.out
放在类路径上将无效。
如果您希望将log4j.properties
的输出重定向到Timbre,我建议您将tools.logging
添加到项目依赖项中,然后使用slf4j-timbre适配器。