禁用 OWL API 日志消息
Disable OWL API logging messages
我正在使用 OWL(版本 4.0.2)e Pellet (3.0) 填充 ontology,然后使用 SWRL 规则推断新事实。但是 OWL API 中的一些 jar 在我尝试进行推断时打印了大量消息,但最终没有显示结果 - 事实上,我没有等到最后,因为它需要永远执行。
这是我设置一些 ontology 信息的地方:
manager = OWLManager.createOWLOntologyManager();
factory = manager.getOWLDataFactory();
this.ontologyURI = ontologyURI;
pm = new DefaultPrefixManager(null, null,
ontologyURI);
File ontologyFile = new File("TwitterOntology.owl");
try {
ontology = manager.loadOntologyFromOntologyDocument(ontologyFile);
} catch (OWLOntologyCreationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我把部分日志发给你:
14:54:38.961 [main] DEBUG o.s.o.rdf.rdfxml.parser.TripleLogger - 三元组总数:4788
14:54:38.966 [main] DEBUG o.s.o.r.r.p.OptimisedListTranslator - 列表:ObjectPropertyAtom(http://www.semanticweb.org/michel/ontologies/2014/6/TwitterOntology#hashtagContainedInTweetRule Variable() Variable())
14:54:38.967 [main] DEBUG o.s.o.r.r.p.OptimisedListTranslator - 列表:ObjectPropertyAtom(http://www.semanticweb.org/michel/ontologies/2014/6/TwitterOntology#posts Variable() Variable())
14:54:38.967 [main] DEBUG o.s.o.r.r.p.OptimisedListTranslator - 列表:DataPropertyAtom()
14:54:40.316 [main] INFO c.c.o.e.BlackBoxExplanation - 初始公理数:50
14:54:40.319 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 0)
14:54:40.320 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 62
14:54:40.321 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 1)
14:54:40.322 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 77
14:54:40.324 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 2)
14:54:40.324 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 96
14:54:40.328 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 3)
14:54:40.328 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 120
14:54:40.333 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 4)
14:54:40.334 [main] 信息 c.c.o.e.BlackBoxExplanation - ... 扩展了 150
如果你们中的一些人能给我任何提示,我将非常感激。
此致,
米歇尔
Slf4j 是正在使用的日志库,看起来你的日志级别很低。
检查类路径中是否有 simplelogger.properties 文件,并设置 org.slf4j.simple logger.defaultLogLevel=error
根据现有设置,您可能需要更改一些其他本地配置。
我想出了解决问题的方法。我把答案放在这里以防你们中的任何人面临同样的问题:
我在我的代码中使用了 slf4j-api-1.7.12.jar。这个 jar 需要来自 "org.slf4j.impl.StaticLoggerBinder" 的 .class。我没有注意到我已经将以下 jar 放在我的 class 路径中:ch.qos.logback.classic-0.9.28.jar。最后一个罐子有 "org.slf4j.impl.StaticLoggerBinder".class。但问题是它会在运行时打印大量日志消息。
我使用另一个 jar - slf4j-nop-1.7.12.jar 解决了这个问题 - 而不是 - ch.qos.logback.classic-0.9.28.jar - 具有 .class 我需要但在运行时不打印任何消息。
希望我说清楚了。
我正在使用 OWL(版本 4.0.2)e Pellet (3.0) 填充 ontology,然后使用 SWRL 规则推断新事实。但是 OWL API 中的一些 jar 在我尝试进行推断时打印了大量消息,但最终没有显示结果 - 事实上,我没有等到最后,因为它需要永远执行。
这是我设置一些 ontology 信息的地方:
manager = OWLManager.createOWLOntologyManager();
factory = manager.getOWLDataFactory();
this.ontologyURI = ontologyURI;
pm = new DefaultPrefixManager(null, null,
ontologyURI);
File ontologyFile = new File("TwitterOntology.owl");
try {
ontology = manager.loadOntologyFromOntologyDocument(ontologyFile);
} catch (OWLOntologyCreationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我把部分日志发给你:
14:54:38.961 [main] DEBUG o.s.o.rdf.rdfxml.parser.TripleLogger - 三元组总数:4788 14:54:38.966 [main] DEBUG o.s.o.r.r.p.OptimisedListTranslator - 列表:ObjectPropertyAtom(http://www.semanticweb.org/michel/ontologies/2014/6/TwitterOntology#hashtagContainedInTweetRule Variable() Variable()) 14:54:38.967 [main] DEBUG o.s.o.r.r.p.OptimisedListTranslator - 列表:ObjectPropertyAtom(http://www.semanticweb.org/michel/ontologies/2014/6/TwitterOntology#posts Variable() Variable()) 14:54:38.967 [main] DEBUG o.s.o.r.r.p.OptimisedListTranslator - 列表:DataPropertyAtom()
14:54:40.316 [main] INFO c.c.o.e.BlackBoxExplanation - 初始公理数:50 14:54:40.319 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 0) 14:54:40.320 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 62 14:54:40.321 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 1) 14:54:40.322 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 77 14:54:40.324 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 2) 14:54:40.324 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 96 14:54:40.328 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 3) 14:54:40.328 [main] INFO c.c.o.e.BlackBoxExplanation - ... 扩展了 120 14:54:40.333 [main] INFO c.c.o.e.BlackBoxExplanation - 扩展公理(扩展 4) 14:54:40.334 [main] 信息 c.c.o.e.BlackBoxExplanation - ... 扩展了 150
如果你们中的一些人能给我任何提示,我将非常感激。
此致, 米歇尔
Slf4j 是正在使用的日志库,看起来你的日志级别很低。
检查类路径中是否有 simplelogger.properties 文件,并设置 org.slf4j.simple logger.defaultLogLevel=error
根据现有设置,您可能需要更改一些其他本地配置。
我想出了解决问题的方法。我把答案放在这里以防你们中的任何人面临同样的问题:
我在我的代码中使用了 slf4j-api-1.7.12.jar。这个 jar 需要来自 "org.slf4j.impl.StaticLoggerBinder" 的 .class。我没有注意到我已经将以下 jar 放在我的 class 路径中:ch.qos.logback.classic-0.9.28.jar。最后一个罐子有 "org.slf4j.impl.StaticLoggerBinder".class。但问题是它会在运行时打印大量日志消息。
我使用另一个 jar - slf4j-nop-1.7.12.jar 解决了这个问题 - 而不是 - ch.qos.logback.classic-0.9.28.jar - 具有 .class 我需要但在运行时不打印任何消息。
希望我说清楚了。