禁用PDFBox上的日志记录

Jan*_*eks 11 java log4j pdfbox

我们正在使用PDFBox进行一些PDF阅读和操作.但在解析过程中,我得到了一堆像这样的消息:

Changing font on <m> from <Arial Bold> to the default font
Run Code Online (Sandbox Code Playgroud)

现在我怎么禁用这些?因为如果嵌入了字体并且日志文件变得非常不可用,则在输入的每个字符上输出这样的消息.

现在更改整体日志级别不是一个选项,因为我需要来自其他组件的语句.

我使用的是Tomcat 5.5,log4j 1.2.16和pdfbox-app 1.6.0

这是我的log4j配置文件:

# Root logger option
log4j.rootLogger=INFO, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.file.File=/home/PDF/WS/PDF.log
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %-5p [%c{2}]: %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %-5p [%c{2}]: %m%n
Run Code Online (Sandbox Code Playgroud)

编辑

修改我的log4j文件后,它的外观如下:

# Root logger option
log4j.rootLogger=INFO, file, stdout

log4j.rootLogger.org.apache.pdfbox=ERROR

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.file.File=/home/PDF/WS/PDF.log
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %-5p [%c{2}]: %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %-5p [%c{2}]: %m%n
Run Code Online (Sandbox Code Playgroud)

无论我在哪里放log4j.rootLogger.org.apache.pdfbox=ERROR线,错误仍然会在日志文件中弹出如下:

2012-07-16 15:36:46,652 WARN  [font.PDSimpleFont]: Changing font on <r> from <Arial Bold> to the default font
2012-07-16 15:36:46,652 WARN  [font.PDSimpleFont]: Changing font on <o> from <Arial Bold> to the default font
2012-07-16 15:36:46,667 WARN  [font.PDSimpleFont]: Changing font on <c> from <Arial Bold> to the default font
2012-07-16 15:36:46,667 WARN  [font.PDSimpleFont]: Changing font on <e> from <Arial Bold> to the default font
2012-07-16 15:36:46,667 WARN  [font.PDSimpleFont]: Changing font on <s> from <Arial Bold> to the default font
2012-07-16 15:36:46,667 WARN  [font.PDSimpleFont]: Changing font on <u> from <Arial Bold> to the default font
2012-07-16 15:36:46,667 WARN  [font.PDSimpleFont]: Changing font on < > from <Arial Bold> to the default font
2012-07-16 15:36:46,667 WARN  [font.PDSimpleFont]: Changing font on <P> from <Arial Bold> to the default font
Run Code Online (Sandbox Code Playgroud)

编辑2

在咨询log4j之后:特定于包的日志记录,我发现了正确的语法:

log4j.logger.org.apache.pdfbox=ERROR
Run Code Online (Sandbox Code Playgroud)

Phi*_*wig 9

禁用所有日志记录的简单方法:

java.util.logging.Logger
    .getLogger("org.apache.pdfbox").setLevel(java.util.logging.Level.OFF);
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想看到严重的消息:

java.util.logging.Logger
    .getLogger("org.apache.pdfbox").setLevel(java.util.logging.Level.SEVERE);
Run Code Online (Sandbox Code Playgroud)


Mar*_*ker 5

pdfbox确实记录了您之前所述的错误,如果将以下行添加到log4j.properties中,它应该清除所有内容

log4j.rootLogger.org.apache.pdfbox.pdmodel.font.PDFont=fatal
Run Code Online (Sandbox Code Playgroud)