Java 如何从JBoss Drools Eclipse插件获取审计窗口的日志文件?
我在EclipseNeon中使用JBossDrools 6.5.0最终插件。创建新项目时,我选择示例代码生成选项。当我运行Drools 5.5.0 Final中的示例代码时,它会生成一个名为Java 如何从JBoss Drools Eclipse插件获取审计窗口的日志文件?,java,eclipse,jboss,drools,Java,Eclipse,Jboss,Drools,我在EclipseNeon中使用JBossDrools 6.5.0最终插件。创建新项目时,我选择示例代码生成选项。当我运行Drools 5.5.0 Final中的示例代码时,它会生成一个名为test.log的文件,然后我可以在Drools透视图的审核窗口中使用该文件。这是在默认代码的这一部分中完成的: KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test"); 6.
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
文件的当前方式是什么?您需要将您的会话转换为KnowledgeRuntimeEventManager:
KnowledgeRuntimeLogger logger=KnowledgeRuntimeLoggerFactory.newFileLogger((KnowledgeRuntimeEventManager)k会话,“测试”) 您需要将您的会话转换为KnowledgeRuntimeEventManager:
KnowledgeRuntimeLogger logger=KnowledgeRuntimeLoggerFactory.newFileLogger((KnowledgeRuntimeEventManager)k会话,“测试”) 请尝试以下代码:
KieRuntimeLogger kieLogger = ks.getLoggers().newFileLogger(kSession, "test");
不要忘记使用以下方法关闭kieLogger
:
kieLogger.close();
此代码段将在项目文件夹中创建一个
test.log
文件。如果使用Eclipse Drools插件,您还可以使用所谓的审核视图来可视化日志文件的内容。请尝试以下代码:
KieRuntimeLogger kieLogger = ks.getLoggers().newFileLogger(kSession, "test");
不要忘记使用以下方法关闭kieLogger
:
kieLogger.close();
此代码段将在项目文件夹中创建一个test.log
文件。在使用EclipseDrools插件的情况下,您还可以使用所谓的Audit
视图来可视化日志文件的内容