我们正在使用drools api。需要在Test.log中添加时间戳。以下是代码。
SELECT date(datetime(timestamp, 'localtime')), count(*) FROM log_time
GROUP BY date(datetime(timestamp, 'localtime'))
通过在java文件中设置全局变量来尝试。
public static KStatefulSessionWrapper getNewStatefulKnowledgeSessionWrapper() throws Exception {
KStatefulSessionWrapper ksessionWrapper = null;
try {
ksessionWrapper = new KStatefulSessionWrapper();
StatefulKnowledgeSession ksession = getKagent().getKnowledgeBase().newStatefulKnowledgeSession();
ksessionWrapper.setStatefulKnowledgeSession(ksession);
ksessionWrapper.setLogger(getKnowledgeRuntimeLoggerForSession(ksession));
} catch (Exception e) {
logger.error(" StatefuleKnowledgeSesion can not be created "
+ e.getMessage());
e.printStackTrace();
throw e;
}
System.out.println(" Session is created..");
return ksessionWrapper;
}
public static KnowledgeRuntimeLogger getKnowledgeRuntimeLoggerForSession(
StatefulKnowledgeSession ksession) throws Exception {
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "Test");
return logger;
}
测试打印在使用log4j配置的server.log中。
在Test.log
中生成以下日志 ksession.setGlobal("logger", logger);
logger.info("Test"); // In drl file
如下所示的必需输出
<org.drools.audit.event.ActivationLogEvent>
<type></type>
<activationId></activationId>
<rule>rule number</rule>
<declarations></declarations>
提前致谢
答案 0 :(得分:0)
我在drools-core-5.0.1.jar中进行了更改以添加时间戳。
在WorkingMemoryFileLogger.java文件的writeToDisk方法中修改代码。以下是现有代码
rxjs
以下是修改后的代码
angular2-websocket/angular2-websocket