我正在尝试使用 jackrabbit-standalone-2.6.0.jar 的程序设置日志记录。该档案包含一些 slf4j 包(org.slf4j、org.slf4j.helpers、org.slf4j.impl、org.slf4j.spi),但据我所知没有日志框架。但是当我添加 slf4j-log4j12-1.7.2.jar 时,我收到以下消息:
SLF4J:在 [jar:file:/D:/Anwendungen/EclipsePlugins/Jackrabbit/jackrabbit-standalone-2.6.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定 SLF4J:在 [jar:file 中找到绑定:/D:/Anwendungen/EclipsePlugins/slf4j-1.7.2/slf4j-1.7.2/slf4j-log4j12-1.7.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
有没有机会看看这里使用了哪种实施者?
我想配置记录器。现在它将大量的调试消息写入一个名为“jackrabit.log_IS_UNDEFINED”的文件,我迫切需要抑制它。在互联网上有几个提示建议设置记录器,但我不完全明白我需要做什么。“DOMConfigurator”和“PropertyConfigurator”类在包中不可用,但是当添加例如“slf4j-log4j12-1.7.2.jar”时,我得到了上述消息。所以我无法在我的程序中初始化记录器。据说将配置 XML 添加到类路径中。我尝试了这个(在 Eclipse 中,我将包含 XML 的文件夹添加到 BuildPath,然后我从我的 XML 文件创建了一个 jar 文件并将这个 jar 文件添加到 BuildPath)但它没有任何区别。
我在http://logging.apache.org/log4j/1.2/manual.html中阅读了“默认初始化程序”的描述,但必须声明我根本不明白。这是什么意思: 2. 将资源字符串变量设置为 log4j.configuration 系统属性的值。指定默认初始化文件的首选方法是通过 log4j.configuration 系统属性。如果未定义系统属性 log4j.configuration,则将字符串变量资源设置为其默认值“log4j.properties”。我必须在哪里指定资源字符串变量?
我的 log4j.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" />
</layout>
</appender>
<root>
<priority value="info" />
<appender-ref ref="Console" />
</root>
</log4j:configuration>
非常欢迎以编程方式或默认初始化配置记录器的任何想法。
乌尔里希