【发布时间】:2010-04-23 00:36:29
【问题描述】:
使用 clojure,我已经能够非常简单地成功设置 log4j,只需使用这个 log4j.properties 文件,并将 log4j 包含在我的类路径中。
# BEGIN log4j.properties
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%d{MMdd HHmmss SSS} %5p %c [%t] %m\n
log4j.rootLogger=DEBUG, STDOUT
然后在 :use'ing clojure.contrib.logging 之后,我可以按预期打印具有所需格式的语句,如下所示:
(info "About to print this")
(debug "This is debug-level")
我的问题是如何为其他库中配置的记录器生成的记录语句实现一致的格式。我以为我可以使用 org.apache.log4j.LogManager.getCurrentLoggers() 找到现有的记录器并在那里更改 PatternLayouts,但我无法在 clojure 中迭代该枚举,因为我收到以下错误:
Dont know how to create ISeq from: java.util.Vector$1
我认为这是可能的,而且可能非常简单。怎么样?
非常感谢。
【问题讨论】: