如何禁用 Tess4j 中的日志记录?

bri*_*lam 0 java logging tesseract tess4j

我刚开始使用 Tess4J 库。我已将 Tess4j 作为依赖项包含在 Maven 中,如下所示:

    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>4.5.1</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

到目前为止,它运行得很好,但我无法弄清楚如何禁用日志记录。看来日志来自 PDFBox 和 Fontbox,它们是 Tess4j 的依赖项。以下是此处记录的一些内容:

19:54:46.712 [main] DEBUG org.apache.fontbox.util.autodetect.FontFileFinder - checkFontfile found C:\WINDOWS\FONTS\YuGothR.ttc
19:54:46.757 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded Arial-BoldMT from C:\WINDOWS\FONTS\arialbd.ttf
19:54:46.860 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded Arial-BoldItalicMT from C:\WINDOWS\FONTS\arialbi.ttf
19:54:46.899 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded ArialMT from C:\WINDOWS\FONTS\arial.ttf
19:54:46.955 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded Arial-ItalicMT from C:\WINDOWS\FONTS\ariali.ttf
19:54:47.477 [Finalizer] DEBUG org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!
Run Code Online (Sandbox Code Playgroud)

我尝试在调用 doOCR 的代码之前设置日志记录级别,但它似乎仍在记录此信息。这是我的代码片段:

19:54:46.712 [main] DEBUG org.apache.fontbox.util.autodetect.FontFileFinder - checkFontfile found C:\WINDOWS\FONTS\YuGothR.ttc
19:54:46.757 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded Arial-BoldMT from C:\WINDOWS\FONTS\arialbd.ttf
19:54:46.860 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded Arial-BoldItalicMT from C:\WINDOWS\FONTS\arialbi.ttf
19:54:46.899 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded ArialMT from C:\WINDOWS\FONTS\arial.ttf
19:54:46.955 [main] DEBUG org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Loaded Arial-ItalicMT from C:\WINDOWS\FONTS\ariali.ttf
19:54:47.477 [Finalizer] DEBUG org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!
Run Code Online (Sandbox Code Playgroud)

yup*_*flu 5

tess4j依赖项包括 logback。
因此我假设日志是由 logback 生成的,而不是由标准 java 日志记录(java.util.logging包)生成的。
这意味着您应该配置 logback以禁用不必要的日志记录。
在 Maven 项目中,创建一个src/main/resources/logback.xml包含如下内容的文件就足够了:

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <logger name="org.apache.fontbox" level="ERROR"/>
  <logger name="org.apache.pdfbox" level="ERROR"/>

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>

</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 我建议将 PDFBox 设置为 ERROR,以便您查看是否发生了重要的“坏”事情。 (2认同)