Tika:如何启用调试输出?

Tika: how to enable the debug output?

直到昨天,我一直在使用 Tika 解析 Office 文档,没有出现任何问题。程序挂在这里:

InputStream input = TikaInputStream.get(new File(sourceUrl));
ContentHandler content = new BodyContentHandler(-1);
LinkContentHandler links = new LinkContentHandler();
ContentHandler handler = new TeeContentHandler(links, content);
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
ParseContext context = new ParseContext();
parser.parse(input,handler,metadata,context); // HANGS HERE!

如何启用调试输出?能帮我找到原因吗

编辑: 看起来答案比我想象的要复杂... http://wiki.apache.org/tika/Logging

这取决于您提取的文件类型。 Tika 使用许多第三方库,这些库又使用不同的日志记录框架。

例如, pdfbox 使用 log4j poi 使​​用自定义日志记录。

对于 pdfbox,它很简单。只需要创建一个log4j.properties并设置pdfbox包登录DEBUG即可。

为了poi,你要做的更多。启用 apache-commons 日志记录,并将 POILogger 设置为 CommonLogger,

System.setProperty("org.apache.poi.util.POILogger", "org.apache.poi.util.CommonsLogger" );

这是我的 log4j.properties 的样子,

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %5p %t %c{2}:%L - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.stdout.Target=System.out
log4j.appender.file.File=log/filecrawler.log
log4j.appender.file.MaxFileSize=100MB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p %t %c{2}:%L - %m%n

log4j.rootLogger=DEBUG, file, stdout

# for pdfbox
log4j.logger.org.apache.pdfbox.pdmodel.font=DEBUG