2012-01-16 56 views
4

我正在努力构建具有特殊要求的自定义nutch插件。如何登录nutch插件的执行

我发现我的插件在hadoop.log中提到,但它不相关。

我在我的代码不同的地方添加LOG.debug("test")LOG.info("test2")和我log4j.properties

# Logging for development 
log4j.logger.org.apache.nutch.parse.html=DEBUG 
写道

我的问题是:我在哪里可以找到这些消息,我已经检查hadoop.log但我无法找到任何东西?

如何记录/跟踪我的java代码? (我没有使用eclipse)

感谢

回答

0

,如果你的插件有类变量

public static final Log LOG = LogFactory.getLog(YourClass.class 
     .getName()); 

而且你调用的方法有:

LOG.info("Your Logmessage"); 

而且您已经构建了插件并配置Nutch在抓取/抓取/ ...时使用您的插件,然后将消息记录在hadoop.log中。

当你建立Nutch,它是否说它正在建立你的插件?

如果是的话,您可以检查您的插件配置,它被部署到NutchHome /运行/本地/ conf目录/ Nutch的-site.xml中:

<property> 
<name>plugin.includes</name> 
<value>protocol-http|urlfilter-regex|parse-(html)|yourplugin</value> 
<description>The plugins which are used in every crawl ordered by call- order</description> 
</property> 

如果你的插件在运行时环境配置。如果不改变configfile,则重建Nutch。如果这没有帮助,你可以给我更多的信息。

+0

我按照你的指示解决,添加LOG变量,将消息在不同的地方,我可以看到Nutch的是建筑为myplugin,我已经正确配置Nutch的-site.xml中,试图再次抓取,然后检查运行时文件夹中的hodoop.log,无法找到我的消息!我正在实施HtmlParseFilter ...嗯,你需要什么样的信息?谢谢 – 2012-01-18 06:05:59

+0

嗨哈雅,你想创建什么样的插件?一个解析器,一个IndexingFilter?你必须继承Nutch给你的特殊接口,然后你必须在插件的plugin.xml中正确配置它们。也许你应该发布你的插件结构(包)和你的plugin.xml文件。问候jp – jpee 2012-01-19 07:53:52

+0

它是一个解析器(我想从页面中提取特殊数据并对它们进行索引),所以我的类正在实现HtmlParseFilter,并添加了此方法:public ParseResult filter(内容内容,ParseResult parseResult,HTMLMetaTags metaTags, DocumentFragment doc){LOG.info(“in filter method”); return parseResult;}请注意,我可以在hadoop.log中找到Myplugin名称,所以我认为plugin.xml没有问题,,,,谢谢 – 2012-01-21 06:07:50

1

这段代码

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
public static final Logger LOG = LoggerFactory.getLogger("org.apache.nutch.parse.html"); 
+0

也发现种子列表(URL)应该采用这种格式http:/// www .site.com /不要忘记写'www' – 2012-01-24 07:30:54