调整apache commons日志记录的日志级别?

use*_*902 20 java java.util.logging apache-commons-logging

我有一个简单的控制台应用程序,它使用apache的PDFBox库,后者又使用commons日志记录.我在我的控制台中收到了很多垃圾邮件,我想抑制它:

2011年2月15日下午3:56:40 org.apache.pdfbox.util.PDFStreamEngine processOperator信息:不支持/禁用操作:EI

在我的代码中,我试图重置日志级别无济于事:

Logger.getLogger("org.apache.pdfbox.util.PDFStreamEngine").setLevel(Level.OFF);
Logger.getLogger("org.apache.pdfbox.util").setLevel(Level.OFF);
Logger.getLogger("org.apache.pdfbox").setLevel(Level.OFF);
Run Code Online (Sandbox Code Playgroud)

尽管有这些设置,但消息仍然显示在控制台上.从Commons日志记录中检索日志对象也没有帮助,因为它似乎没有办法设置级别.

有没有办法以编程方式抑制这些消息?或者我是否需要添加配置文件?

Joh*_*erg 5

Commons-logging只是一个logging-facade,这意味着它不提供实际将logdata写入例如磁盘的代码.什么,你需要改变是实际的日志记录实现的配置(如logback,log4j,sl4fj等).如果没有找到这样的库,则默认为java.util.logging.

我建议将eg,log4j放在类路径中,并在类路径中添加log4j.xml配置文件.仅仅出现log4j在classpath在这种情况下,足以初始化.Log4j也可以通过编程方式配置.