2017-11-29 71 views
0

私は単純なJavaコンソールアプリケーションを持っています。 pdfboxは、PDFファイルからテキストを抽出するために利用されます。しかし、コンソールに連続した情報が表示されています:PDFBoxの警告ログを無効にする方法

十一月 29, 2017 9:28:27 下午 org.apache.pdfbox.pdmodel.font.PDSimpleFont toUnicode 
警告: No Unicode mapping for 14 (145) in font GGNHDZ+SimSun 
十一月 29, 2017 9:28:27 下午 org.apache.pdfbox.pdmodel.font.PDSimpleFont toUnicode 
警告: No Unicode mapping for 28 (249) in font LNKLJH+SimSun 
十一月 29, 2017 9:28:27 下午 org.apache.pdfbox.pdmodel.font.PDSimpleFont toUnicode 

本当にコンソールからこの情報を削除します。そして、私がログにlogbackを使用し、logback.xmlが同じようにされています

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<logger name="org.apache.pdfbox" level="ERROR"/> 
<timestamp key="timestamp-by-second" datePattern="yyyyMMdd'T'HHmmss"/> 
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <!-- encoder 默认配置为PatternLayoutEncoder --> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
</appender> 
<appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>logs/test-${timestamp-by-second}.log</file> 
    <append>true</append> 
    <encoder> 
     <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n 
     </pattern> 
    </encoder> 
</appender> 
<root level="ERROR"> 
    <appender-ref ref="FILE" /> 
    <appender-ref ref="STDOUT" /> 
</root> 

私はそれがレベルを変更する必要があると言ういくつかの答えを見つけることがあります。レベルをERRORに変更しました。しかし、まだ動作しません。私は情報がlogback.xmlで何かを持っているかどうか疑問に思っています。 STDOUTを削除すると、pdfboxの警告情報がコンソールに表示されるためです。

誰もがこの事件を知っていますか?前もって感謝します。その後、

答えて

1

ロギングはLogbackによって放出された場合たとえば、あなたが試してみましたアプローチ、...

  • STDOUTアペンダ

を削除<logger name="org.apache.pdfbox" level="ERROR"/>

  • を追加しています...働くだろう。

    しかし、PDFBoxはLogbackを使用せず、代わりにApache Commons Logging(http://commons.apache.org/logging/)を使用します。コモンズのログを無効にするいくつかの方法があります。PDFBOXはLogインスタンスを作成する前に、自分のメインクラスの静的初期化子ブロックに以下を追加することで、完全にログ

    • 無効にコモンズが、これは*必須**実行する:

      -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog` 
      
    • :あなたはあなたのアプリケーションを起動すると、次のJVMパラメータを渡すことによって、ログ
      static { 
          System.setProperty("org.apache.commons.logging.Log", 
             "org.apache.commons.logging.impl.NoOpLog"); 
      } 
      
    • を無効コモンズ

      メインクラスの静的イニシャライザブロックに次を追加してPDFBOX名前空間のCommons Loggingを無効にする場合、PDFBOXがLogインスタンスを作成する前に実行する必要があります(注:許容誤差の許容量に応じてLevel.SEVEREを使用することもできますPDFBOXのログ出力用):

      java.util.logging.Logger.getLogger("org.apache.pdfbox") 
          .setLevel(java.util.logging.Level.OFF); 
      
  • +0

    Iは、第1および第3のを試してみました。最初のものは動作しますが、3番目のものは動作しません。ありがとう。 – neal

    +0

    設定プロパティは私のために働いた – Genarito

    関連する問題