Как отключить логин в Tess4j? - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в использовании библиотеки Tess4J. Я включил Tess4j в качестве зависимости в Maven следующим образом:

    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>4.5.1</version>
    </dependency>

До сих пор он работал отлично, но я не могу понять, как отключить ведение журнала. Похоже, что журналы поступают из 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!

Я попытался установить уровень ведения журнала перед своим кодом, где я вызвал doOCR, но, похоже, он все еще регистрирует эту информацию. Вот мой фрагмент кода:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.Logger;
import net.sourceforge.tess4j.*;

public static void main(String[] args) throws TesseractException, FileNotFoundException, IOException { 
    Tesseract tesseract = getTesseract("C:\\Program Files\\Tesseract-OCR\\tessdata");

    // My attempts to disable logging
    Logger.getLogger("org.apache.fontbox").setLevel(java.util.logging.Level.OFF);
    Logger.getLogger("org.apache.pdfbox").setLevel(java.util.logging.Level.OFF);

    // Example 1
    File file = new File("test.pdf");
    String result = tesseract.doOCR(file);
    System.out.println(result);
  }

1 Ответ

3 голосов
/ 06 мая 2020

tess4j библиотека зависимости включают логбэк.
Поэтому я предполагаю, что логи создаются логбэком, а не стандартным java логированием (java.util.logging пакет).
Это означает, что вы должны настроить логбэк , чтобы отключить ненужное ведение журнала.
В проектах 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...