我目前正在尝试降低我在我的 Java 项目中使用的 PDFBox 1.8.6 库的日志记录级别,但未能成功。基于this previous question ,我在/src/目录中有以下 log4j.properties 文件。
log4j.rootLogger=ERROR, stdout
log4j.logger.org.apache.pdfbox=ERROR
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %-5p [%c{2}]: %m%n
我不确定我还遗漏了什么,因为我仍然在控制台中收到类似以下消息的垃圾邮件。
Jul 10, 2014 10:19:23 AM org.apache.pdfbox.pdfparser.PDFParser parseXrefTable
WARNING: Count in xref table is 0 at offset 223265
Jul 10, 2014 10:19:23 AM org.apache.pdfbox.pdfparser.PDFParser parseXrefTable
WARNING: Count in xref table is 0 at offset 223265
Jul 10, 2014 10:19:23 AM org.apache.pdfbox.pdfparser.PDFParser parseXrefTable
WARNING: Count in xref table is 0 at offset 223265
如果有办法以编程方式更改日志级别,我根本不会附加到属性文件,因为我没有在其他任何地方使用 log4j。我不知道它是否甚至在使用 log4j.properties 文件。我正在使用 Eclipse,我不确定如何确认 log4j.properties 文件是否按预期位于类路径中。
最佳答案
在我弄明白之前,我遇到了同样的问题。
PDFBox 1.8.6 库不直接使用 Log4j。相反,它使用 Apache Commons Logging Framework ( http://commons.apache.org/proper/commons-logging/guide.html )。
公共(public)日志记录框架有自己的属性文件来配置日志记录,如果它在类路径上,则只使用 log4j 作为后备。
要解决此问题,您可以配置 apache 公共(public)日志记录以忽略它或将 log4j 添加到您的类路径中。我在这里找到了一些说明,但我无法让它们工作 ( http://cyntech.wordpress.com/2009/01/09/how-to-use-commons-logging/ )
我最后做的是将 log4j.jar 添加到我的类路径,然后上面的说明(在类路径中添加一个 log4j.properties 文件,内容为 log4j.rootLogger=ERROR,stdout)终于奏效了。
关于java - 更改 PDFBox 日志记录级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24682756/