首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >调整apache commons日志记录的日志级别?

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

Stack Overflow用户
提问于 2011-02-16 05:23:05
回答 4查看 24.7K关注 0票数 25

我有一个简单的控制台应用程序,它使用apache的PDFBox库,而后者又使用commons日志记录。我在控制台上收到了很多垃圾消息,我想要抑制它们:

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

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

代码语言:javascript
复制
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);

尽管进行了这些设置,消息仍会显示在控制台上。从Commons日志中检索日志对象也无济于事,因为它似乎没有设置级别的方法。

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

EN

回答 4

Stack Overflow用户

发布于 2011-02-16 05:27:28

Commons-logging只是一个logging-facade,这意味着它不会提供实际将日志数据写入磁盘的代码。您需要更改的是实际日志记录实现的配置(例如logbacklog4j等)。如果找不到这样的库,则默认为java.util.logging

我建议将log4j放在类路径中,并在类路径中添加一个log4j.xml配置文件。在这种情况下,类路径中仅存在log4j就足以对其进行初始化。也可以将Log4j配置为programmatically

票数 9
EN

Stack Overflow用户

发布于 2015-06-28 02:15:58

这对我来说很有效:

代码语言:javascript
复制
String[] loggers = { "org.apache.pdfbox.util.PDFStreamEngine",
        "org.apache.pdfbox.pdmodel.font.PDSimpleFont" };
for (String logger : loggers) {
  org.apache.log4j.Logger logpdfengine = org.apache.log4j.Logger
         .getLogger(logger);
  logpdfengine.setLevel(org.apache.log4j.Level.OFF);
}
票数 3
EN

Stack Overflow用户

发布于 2011-02-16 05:28:45

Apache commons-logging在底层(java.util.logging或Log4J)下使用了其他一些日志记录框架,您必须调查它在您的项目中使用了哪一个,并在那里设置了适当的日志记录级别。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5009658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档