如何关闭Stanford CoreNLP Redwood日志记录?

时间:2014-02-18 10:40:23

标签: java logging stanford-nlp

如何关闭Stanford CoreNLP消息(见帖子末尾)? 我首先尝试在log4j.properties中设置log4j.category.edu.stanford=OFF,但这没有帮助,所以我发现它显然使用了一个名为“Redwood”的非标准日志框架。根据{{​​1}},有一个文档,但它受密码保护。我试过http://nlp.stanford.edu/nlp/javadoc/javanlp/,但这也无济于事。

记录消息:

RedwoodConfiguration.empty().apply();

P.S。:Adding annotator tokenize Adding annotator ssplit Adding annotator pos Loading default properties from tagger edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [1,2 sec]. 也不起作用。但是,以下内容会抑制我自己的日志记录语句(但不包括来自StanfordCoreNLP的日志记录):

Redwood.hideAllChannels();

解决方案好的,StevenC是对的,它毕竟不是记录语句,但是默认的初始化消息被写入stderr,我没想到会看到Stanford拥有它自己的日志记录框架然后没有不要用它: - )

无论如何,他的提示让我发现了这个解决方案:

RedwoodConfiguration.empty().apply();
Redwood.log("test redwood");

3 个答案:

答案 0 :(得分:3)

您还可以在Redwood项目中的GitHub上找到Redwood Tutorial PDF。

网址在此页面中:https://github.com/gangeli/redwood/blob/master/doc/tutorial.pdf

(显然,我无法告诉你文件是否相同,'因为我不知道用户名/密码:-))


更进一步,我将Tutorial PDF链接到幻灯片放映。如果你想要属性文件的文档,我能找到的最好的是RedwoodConfiguration.parse方法的javadocs。事实上,其他类javadoc可能是你会发现的最好的文档......没有阅读源代码。

警告......有迹象表明GitHub上独立的Redwood代码可能与NLP代码库中的版本不同。

答案 1 :(得分:3)

StanfordNLP使用Redwood作为日志记录的日志框架。您必须在初始化StanfordNLP管道之前禁用它。

import edu.stanford.nlp.util.logging.RedwoodConfiguration;
RedwoodConfiguration.current().clear().apply();
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

它对我有用。在运行程序时,它不会在每一行显示冗长的INFO消息。

希望它有所帮助!

答案 2 :(得分:0)

可以通过将空白输出流设置为系统错误流来解决此问题。

请在类似帖子https://stackoverflow.com/a/48743963/1303210

中查看我的回答