如何从 JBoss Drools Eclipse 插件获取审计窗口的日志文件?
Posted
技术标签:
【中文标题】如何从 JBoss Drools Eclipse 插件获取审计窗口的日志文件?【英文标题】:How to obtain a log file for Audit Window from JBoss Drools Eclipse plugin? 【发布时间】:2017-03-28 04:28:15 【问题描述】:我在 Eclipse Neon 中使用 JBoss Drools 6.5.0 Final 插件。创建新项目时,我选择了示例代码生成选项。当我从 Drools 5.5.0 Final 运行示例代码时,它会生成一个名为 test.log
的文件,然后我可以在 Drools 透视图的审核窗口中使用该文件。这是在这部分默认代码中完成的:
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
6.5.0 Final 不是这种情况,因为示例代码不包含上述行。当我尝试添加它时:
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(kSession, "test");
我得到一个编译错误:
The method newFileLogger(KnowledgeRuntimeEventManager, String) in the type KnowledgeRuntimeLoggerFactory is not applicable for the arguments (KieSession, String)
这是因为新示例代码使用KieSession
对象而不是StatefulKnowledgeSession
。我尝试将 kSession
强制转换为 StatefulKnowledgeSession
,但出现强制转换异常。
目前test.log
文件的获取方式是什么?
【问题讨论】:
【参考方案1】:请尝试以下代码:
KieRuntimeLogger kieLogger = ks.getLoggers().newFileLogger(kSession, "test");
别忘了使用以下方法关闭kieLogger
:
kieLogger.close();
此代码 sn-p 将在您的项目文件夹中创建一个test.log
文件。如果使用 Eclipse Drools 插件,您还可以使用所谓的Audit
视图来可视化日志文件的内容。
【讨论】:
【参考方案2】:您需要将您的 ksession 转换为 KnowledgeRuntimeEventManager :
KnowledgeRuntimeLogger 记录器 = KnowledgeRuntimeLoggerFactory.newFileLogger((KnowledgeRuntimeEventManager) kSession, "test");
【讨论】:
以上是关于如何从 JBoss Drools Eclipse 插件获取审计窗口的日志文件?的主要内容,如果未能解决你的问题,请参考以下文章