You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何屏蔽PDFBox第三方库在控制台输出的DEBUG日志

屏蔽PDFBox控制台冗余DEBUG输出的方案

你看到的[main] DEBUG开头的输出是日志框架打印的调试级日志,仅通过System.setProperty设置系统属性无法完全拦截,需要根据项目实际使用的日志框架调整对应配置,所有配置需要在PDFBox类首次加载前生效,否则不会起作用。

  • 项目使用Logback(SpringBoot默认日志实现)
    在src/main/resources路径下找到或新建logback.xml配置文件,添加如下配置,将对应包的日志输出级别调高:
<!-- 级别设为ERROR就只会打印致命错误,完全屏蔽DEBUG/INFO/WARN级输出 -->
<logger name="org.apache.pdfbox" level="ERROR"/>
<logger name="org.apache.fontbox" level="ERROR"/>
<!-- 如果需要保留警告信息,把level值改成WARN即可 -->
  • 项目使用Log4j2
    在资源目录下的log4j2.xml中添加对应logger规则:
<Logger name="org.apache.pdfbox" level="error" additivity="false">
    <AppenderRef ref="Console"/>
</Logger>
<Logger name="org.apache.fontbox" level="error" additivity="false">
    <AppenderRef ref="Console"/>
</Logger>
  • 项目未引入第三方日志实现,使用JDK自带的Java Util Logging
    可以直接在静态代码块最靠前的位置补充如下配置,比单纯设置系统属性的覆盖范围更全:
// 注意:这几行代码必须放在所有PDFBox相关类加载逻辑之前
System.setProperty("org.apache.pdfbox.level", "SEVERE");
System.setProperty("org.apache.fontbox.level", "SEVERE");
// 系统属性不生效时直接操作JUL日志对象设置级别
Logger.getLogger("org.apache.pdfbox").setLevel(Level.SEVERE);
Logger.getLogger("org.apache.fontbox").setLevel(Level.SEVERE);

临时做功能测试不想修改全局配置的话,直接在测试类的静态初始化块里加上述对应日志级别设置代码即可,不会影响其他环境的日志输出。

内容的提问来源于stack exchange,提问作者JamesB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:31:17