我使用PDFbox读取PDF文件;我知道它不使用Log4j,而是使用apache的通用日志记录(听到这个消息我很惊讶,因为它的Maven配置包括Log4jv1(。
当我运行我的程序时,我会收到这样的消息:
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
(68条关于GlyphSubstitutionTable的消息(和
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时,我仍然会收到上面提到的日志消息,以及上面尝试的任何和所有修复。我怎样才能消除它们;我更愿意将它们限制为警告、错误和严重的消息,而不是删除所有消息,但在这一点上,我将接受其中任何一个的建议。
public class Main {
static {
java.util.logging.Logger.getLogger(
"org.apache").setLevel(java.util.logging.Level.SEVERE);
}
// ...
还帮助我禁用了fontbox中的警告。
而"org.apache.pdfbox"
仅禁用pdfbox警告,而不禁用fontbox警告。
"org.apache.fontbox"
在某种程度上不会禁用字体框警告。