2016-11-14 7 views
0

Я использую JBoss Drools 6.5.0 Final плагин в Eclipse Neon. При создании нового проекта я выбираю вариант генерации кода образца. Когда я запускаю пример кода из Drools 5.5.0 Final, он создает файл с именем test.log, который затем можно использовать в окне аудита перспективы Drools. Это было сделано в этой части кода по умолчанию:Как получить файл журнала для окна аудита из плагина JBoss Drools Eclipse?

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?

ответ

0

Вы должны отдать свой ksession в KnowledgeRuntimeEventManager:

KnowledgeRuntimeLogger регистратор = KnowledgeRuntimeLoggerFactory.newFileLogger ((KnowledgeRuntimeEventManager) kSession, "тест");