Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JBoss Drools Eclipse插件获取审计窗口的日志文件?_Java_Eclipse_Jboss_Drools - Fatal编程技术网

Java 如何从JBoss Drools Eclipse插件获取审计窗口的日志文件?

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.

我在EclipseNeon中使用JBossDrools 6.5.0最终插件。创建新项目时,我选择示例代码生成选项。当我运行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
文件的当前方式是什么?

您需要将您的会话转换为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
视图来可视化日志文件的内容