当前位置: 首页 > 知识库问答 >
问题:

更改PDFBox日志记录级别

陶俊晤
2023-03-14

我目前正在尝试降低我在java项目中使用的PDFBox 1.8.6库的日志记录级别,但失败了。基于前面的问题,我在 /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。属性文件。我使用的是Eclipse,我不确定如何确认log4j。属性文件位于预期的类路径上。

共有2个答案

漆雕疏珂
2023-03-14

log4j。属性文件应与您的位于同一文件夹中。类文件。目前它似乎没有加载。您已经在第一行中正确设置了日志记录级别:

log4j.rootLogger=ERROR, stdout

这应该将log4j中的根记录器设置为使用日志级别,这意味着它将只显示严重程度为错误或更高的日志消息。

此外,如果您只想影响PDFBox,并且知道库的包,则可以通过在属性文件中添加类似以下内容来有选择地设置包的日志记录级别:

log4j.logger.com.thepackage.of.pdfbox=ERROR
林龙野
2023-03-14

我也有同样的问题,直到我解决了。

PDFBox 1.8.6库不直接使用Log4j。相反,它使用Apache Commons日志框架(http://commons.apache.org/proper/commons-logging/guide.html).

Commons日志框架有自己的属性文件来配置日志记录,并且仅在log4j位于类路径上时才使用log4j作为后备。

要解决这个问题,您可以将apache commons日志配置为忽略它,或者将log4j添加到类路径中。我在这里找到了一些说明,但我没能让它们发挥作用(http://cyntech.wordpress.com/2009/01/09/how-to-use-commons-logging/)

我最终做的是添加log4j。jar到我的类路径,然后上面的说明(在类路径中添加一个log4j.properties文件,内容为log4j.rootLogger=ERROR,stdout)终于起作用了。

 类似资料:
  • 是的,我已经阅读了所有相关的问题。我正在使用log4j2(尝试了2.4版和更新到最新的2.6.2版)。 我有一个面向客户的小型实用程序。我渴望将暴露的配置保持在最低限度。但对于有问题的情况,我还想添加一个标志,以便在运行时启用调试日志。 这是我启用调试日志记录的代码 但它实际上并不适用于这些情况: 实用程序通常在30秒内完成,因此更改应该是即时的。这是log4j2。xml 使用AppenderRe

  • 我有一个用例,在这个用例中,我运行了数千个SQL查询和日志记录集,按照现在的情况,将每个查询写到控制台需要花费大量时间,并且会使客户端的调用超时。我试着将pom.xml中dev概要文件的logback.loglevel属性设置为ERROR,但是没有用。 所以我的问题是: < li >是否可以为单独的REST调用配置日志级别? < li >如何全局配置应用程序的日志级别?

  • 给定的第三方库的源代码我不能更改: 我想消除假阳性。 感谢您的反馈!

  • 我们正在使用PDFBox进行一些PDF阅读和操作。但是在解析过程中,我收到了一堆这样的消息: 现在我如何禁用这些?因为如果字体被嵌入,这样的消息会在输入的每个字符上输出,因此日志文件变得非常不可用。 现在,更改总体日志级别不是一个选项,因为我需要来自其他组件的语句。 我使用的是Tomcat 5.5、log4j 1.2.16和pdfbox app 1.6.0 这是我的log4j配置文件: 编辑 修改

  • 问题内容: 我在系统中收到以下消息:“ FacesMessage已入队…。 ”。 Sun的JavaServer Faces实现(1.2_07-b03-FCS)的解决方案是将其添加到web.xml: 但是出于某种原因,该解决方案不适用于我正在使用 Mojarra(1.2_15-b01-FCS)的 该实施 。 该文档说,我只需要简单地更改RenderResponsePhase的记录器即可。 Faces

  • 如何设置在TomEE中运行的OpenEJB组件的日志记录级别?我想从的源代码中查看调试日志记录语句。 我尝试修改conf/logging.properties并在WAR的WEB-INF\类中添加一个logging.properties文件,但我找不到正确的组合,我甚至不确定这些是要修改/创建的正确文件。