【发布时间】:2022-10-07 15:52:51
【问题描述】:
我使用 PDFbox 阅读 PDF 文件;我知道它不使用 Log4j,它使用 apache 的通用日志记录(听到这个我很惊讶,因为它的 Maven 配置包括 Log4j v1)。
当我运行我的程序时,我收到如下消息:
18:13:20.093 [SwingWorker-pool-2-thread-1] DEBUG org.apache.fontbox.ttf.PostScriptTable - No PostScript name information is provided for the font CourierNewPS-BoldMT
18:13:20.102 [SwingWorker-pool-2-thread-1] DEBUG org.apache.fontbox.ttf.GlyphSubstitutionTable - Type 4 GSUB lookup table is not supported and will be ignored
18:13:20.102 [SwingWorker-pool-2-thread-1] DEBUG org.apache.fontbox.ttf.GlyphSubstitutionTable - Type 6 GSUB lookup table is not supported and will be ignored
18:13:20.102 [SwingWorker-pool-2-thread-1] DEBUG org.apache.fontbox.ttf.GlyphSubstitutionTable - Type 6 GSUB lookup table is not supported and will be ignored
(关于 GlyphSubstitutionTable 的 68 条消息),以及
18:13:20.163 [SwingWorker-pool-2-thread-1] DEBUG org.apache.fontbox.ttf.GlyphSubstitutionTable - Type 4 GSUB lookup table is not supported and will be ignored
18:13:20.476 [Finalizer] DEBUG org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!
18:13:23.327 [Finalizer] DEBUG org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!
我尝试将commons-logging.properties 文件放入src/main/resources 包含
org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
我尝试将代码 java.util.logging.Logger.getLogger(\"org.apache.pdfbox\").setLevel(java.util.logging.Level.OFF) 放入包含我程序的 static void main 方法的类的静态初始化程序中。
我试过把
System.setProperty(\"org.apache.commons.logging.Log\", \"org.apache.commons.logging.impl.NoOpLog\");
单独并与前面的代码一起放入该静态初始化程序。
当我在我的代码中阅读 PDF 时,我仍然会收到上面提到的日志消息以及上述所有尝试修复。我怎样才能消除它们;我宁愿只将它们限制为警告、错误和严重消息,而不是消除所有消息,但在这一点上,我会接受任何一个的建议。
-
我所做的是添加 log4j2 并在 XML 文件中设置日志级别(公共日志记录在您的代码和实际日志记录库之间)。 PDFBox 不使用 log4j,可能是旧版本。
-
@tilman Hausherr -- 抱歉,不是 PDFBox 通过 Maven 获取旧版本的 log4j,而是 Tesseract。我两者都用,只是搞不清楚我指的是哪一个。我试着按照你的建议去做——包括 log4j api 和 core(我已经有 core,但没有 api),并在 log4j.properties 中添加了一个配置行,但我仍然收到所有这些消息。我将看看我能做些什么来学习如何使用 XML,并看到它出于某种原因做得更好。
-
log4j2 仅使用 xml 配置文件 AFAIK。这是我的 (log4j2,xml): <?xml version=\"1.0\" encoding=\"UTF-8\"?> <Configuration> <Appenders> <Console name=\"STDOUT\" target=\ "SYSTEM_OUT\"> <PatternLayout pattern=\"%d{dd.MM.yyyy HH:mm:ss} %-5p %C{2}:%L - %m%n\"/> </Console> < /Appenders> <Loggers> <Logger name=\"org.springframework\" level=\"warn\" additivity=\"false\"> <AppenderRef ref=\"STDOUT\"/> </Logger> <Root level =\"info\"> <AppenderRef ref=\"STDOUT\"/> </Root> </Loggers> </Configuration>
标签: java pdfbox apache-commons-logging