2012-07-13 21 views
9

Estamos utilizando PDFBox para hacer algunas lecturas y manipulaciones de PDF. Pero durante el análisis, recibo un montón de mensajes como este:Desactivar el registro en PDFBox

Changing font on <m> from <Arial Bold> to the default font 

¿Cómo puedo desactivar esto? Porque un mensaje como este se emite en CADA carácter de la entrada si la fuente está incrustada y los archivos de registro por lo tanto se vuelven bastante inutilizables.

Ahora cambiar el nivel general de registro no es una opción, porque necesito las declaraciones de otros componentes.

estoy usando Tomcat 5.5, log4j 1.2.16 y 1.6.0 PDFBox aplicación

Y aquí es mi log4j fichero de configuración:

# 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 

EDITAR

Después de modificar mi archivo log4j, esta es la forma en que se ve:

# 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 

No importa donde pongo la línea log4j.rootLogger.org.apache.pdfbox=ERROR, los errores todavía siguen apareciendo como este en los archivos de registro:

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 

EDIT 2

Después de consultar log4j: package-specific logging descubrí la sintaxis correcta:

log4j.logger.org.apache.pdfbox=ERROR 
+1

Ver http://stackoverflow.com/questions/728295/creating-multiple-log-files-of-different-content-with-log4j – Kennet

+0

posible duplicado de [Ajuste nivel de registro para el registro de apache commons?] (http://stackoverflow.com/que stions/5009658/adjust-logging-level-for-apache-commons-logging) –

+0

el registro no solo es molesto sino que es un gran asesino de rendimiento ... –

Respuesta

4

pdfbox hace mucho al iniciar sesión en el error como usted indicó antes, si agrega la siguiente línea a log4j.properties, debería limpiarlo

log4j.rootLogger.org.apache.pdfbox.pdmodel.font.PDFont=fatal 
+0

Recupero la respuesta aceptada. Esto no parece funcionar. Los errores aún se registran. –

+0

si coloca 'org.apache.pdfbox.pdmodel.font' en error/fatal debería desaparecer. Hay varias clases en este paquete que proporcionan registros no deseados como org.apache.pdfbox.pdmodel.font.PDFont pero también org.apache.pdfbox.pdmodel.font.PDSimpleFont –

+0

Mire la edición de la pregunta. –

3

Esto funciona para mí: - tenga en cuenta que hay múltiples preguntas como esta se aplica esta respuesta y ya me pidieron que marcara las cosas como duplicadas. Así que si alguien encuentra el tiempo para esto - sólo seguir adelante y fusionar ...

// you might want to switch off logging here to improve performance 
     String[] loggers = { "org.apache.pdfbox.util.PDFStreamEngine", 
      "org.apache.pdfbox.pdmodel.font.PDSimpleFont", 
      "org.apache.pdfbox.pdmodel.font.PDFont", 
      "org.apache.pdfbox.pdmodel.font.FontManager", 
      "org.apache.pdfbox.pdfparser.PDFObjectStreamParser" }; 
     for (String logger : loggers) { 
      org.apache.log4j.Logger logpdfengine = org.apache.log4j.Logger 
       .getLogger(logger); 
      logpdfengine.setLevel(org.apache.log4j.Level.OFF); 
     } 
+1

Esto funciona muy bien para mí también. Por alguna razón, tuve que agregar uno más a mi lista: 'org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap' – Jonathan

4

Una manera sencilla de desactivar todos los registros:

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

O si quieres sólo para ver los mensajes graves:

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

Sugeriría que cambiaras el" OFF "a algo menos extremo, copiar y pegar novatos sería no vea los mensajes y luego abra los problemas de "no funciona". Ver también http://hitchhikers.wikia.com/wiki/Ravenous_Bugblatter_Beast_of_Traal –

+0

@TilmanHausherr La próxima vez que vea un error como este, podría considerar arreglarlo usted mismo. El botón editar está ahí por una razón. – wvdz

+0

@wvdz Lo sé, pero cuando algo es una cuestión de opinión, evito presionar a los usuarios. –

Cuestiones relacionadas