当前位置: 首页 > 知识库问答 >
问题:

Drools的默认stderr输出可以用调试事件侦听器在stdout中更改为INFO吗?

郑狐若
2023-03-14

我已经将议程ruleruntime事件侦听器添加到我的无状态KIE会话中,但所有输出都显示为error[stderr]...;是否可以将会话/侦听器配置为使用stdout并控制日志级别(最好是info)?

我看到过一个几乎相同的Google Groups问题,但我正在一个Thorntail应用程序中嵌入drools引擎。

我使用的是无状态KIE会话和版本7.23.0。org.KIE.KIE-apiorg.KIE.KIE-cieorg.drools.drools-core的最终。我的无状态会话的创建摘录如下:

java prettyprint-override">KieServices kieServices = KieServices.Factory.get();
KieContainer kieContainer = kieServices.getKieClasspathContainer();
StatelessKieSession statelessKieSession = kieContainer.newStatelessKieSession();
statelessKieSession.addEventListener(new DebugAgendaEventListener());
statelessKieSession.addEventListener(new DebugRuleRuntimeEventListener());

我注意到DebugAgendaEventListener和DebugRuleRuntimeEventListener上的一个构造函数可以接受PrintStream参数,我可以用它来替换默认的stderr吗?

记录到控制台的示例输出如下:

ERROR [stderr] (default task-1) ==>[ActivationCreatedEvent: getActivation()=[[ ...]]]
ERROR [stderr] (default task-1) ==>[BeforeActivationFiredEvent:  getActivation()=[[...]]]
... Rule fired ...
ERROR [stderr] (default task-1) ==>[AfterActivationFiredEvent: getActivation()=[[ ... ]]]

我不明白为什么默认情况下它们会被记录到stderr,它们会显示更多debug/trace级别的信息,所以如果可能的话,希望将它们输出到stdout

共有1个答案

汪典
2023-03-14

默认情况下,kie-api中的debug*listener(s)会发出标准错误,以便不管任何日志记录配置如何工作。通过使用该构造函数,您确实可以传递自定义PrintStream以重写正在打印消息的位置。

是否可以将会话/侦听器配置为使用stdout并控制日志级别(最好是info)?

您可以在包org.drools.core.event中使用drools-core依赖项中的debug*listener(s)。如果作为默认做法,您已经将日志记录配置为发出到标准输出,那么它就可以开箱即用了。

这些只是一些“实用程序”默认实现;或者,您可以实现自己的监听器,以便在您最喜欢的监听器中工作。

 类似资料:
  • 问题内容: 是否可以在jQuery中创建可以绑定到任何样式更改的事件侦听器?例如,如果我想在元素更改尺寸或对style属性进行任何其他更改时“执行”操作,则可以执行以下操作: 这将非常有用。 有任何想法吗? 更新 很抱歉自己回答这个问题,但是我写了一个可能适合其他人的简洁解决方案: 这将临时覆盖内部prototype.css方法,并在最后使用触发器重新定义它。所以它是这样的: 问题答案: 由于jQ

  • 在我的代码中,如果用户在ComboBox 2中输入值,它将反映在TextField中,但是如果用户从ComboBox 1的下拉列表中选择,而不更改ComboBox 2中的值,那么TextField中的值将保持不变,它不会更改。我做错了吗? 测试2。txt:1任何帮助都将不胜感激!

  • 问题内容: 我希望在用户更改文本字段中的值后立即显示消息框。目前,我需要按Enter键才能弹出消息框。我的代码有什么问题吗? 任何帮助,将不胜感激! 问题答案: 将侦听器添加到为你自动创建的基础文档中。

  • 问题内容: 如何启用处理JPA回调的Hibernate事件侦听器? 当前,我正在将Hibernate 4与SessionFactory配置一起使用,但是当我保留一个对象时,JPA回调无法正常运行。 任何建议都是最欢迎的。 源代码 临时实体类: TempVal类: MainClass类: Hibernate配置: 程序输出 程序输出如下: 预期的输出将是: 问题答案: 这个问题基本上是一样的。 事实

  • 问题内容: 我有一个简单的功能要测试: 但是,如何测试该函数实际发送到标准输出的内容呢?Test :: Output在Perl中实现了我想要的功能 但这对于每个测试来说都是很多额外的工作。我希望有一种更标准的方法,或者也许是一个抽象库来处理此问题。 问题答案: 还需要记住的一件事是,没有什么可以阻止您编写避免编写样板代码的函数。 例如,我有一个使用的命令行应用程序,我编写了以下函数: 然后像这样使

  • 我正在Wildfly 9.0.1的KeyClope中配置一个事件侦听器。我创造了一个。jar有两个类,实现了一个提供者,如KeyClope在他的github示例中解释的那样。 在本例中,keydape人员解释说,有必要注册提供者编辑“standalone/configuration/standalone.xml”并将模块添加到providers元素中。我在标签“subsystem”中对这个定义进行