如何在Drools规则的“何时”部分记录所有内容?

时间:2016-12-22 09:52:01

标签: java logging drools

我必须记录负责在Drools中触发规则的所有内容,如对象,条件等。

我能够通过使用 AgendaEventListener 获取对象,并在其中使用beforeActivationFired方法编写下面的代码。

@Override
public void beforeActivationFired(BeforeActivationFiredEvent event){
    event.getActivation().getObjects();
}

但是如何获取条件以及在哪个对象上调用哪些方法? 就像我有一个用作全局变量的对象,用于根据缓存中的值验证值,即规则的一部分时,这个全局对象上有不同的方法(其中包含数百个方法)被称为。

现在我想获得有关调用哪些方法的信息,以便我可以事先记录信息,因为在执行之后,缓存中的值可能会发生变化。

例如 -

如果在条件低于条件的情况下,那么我希望知道条件中的条件以及两侧的值,即$ val的值以及$ cache.getCurrentTimestamp()(请注意,调用缓存的方法事先是未知的。

$val : timestamp,
$val == $cache.getCurrentTimestamp()

我该如何完成这项任务?

0 个答案:

没有答案