需要在使用drool生成的日志文件中添加时间戳

时间:2016-10-03 13:38:05

标签: java jboss drools

我们正在使用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>

提前致谢

1 个答案:

答案 0 :(得分:0)

我在drools-core-5.0.1.jar中进行了更改以添加时间戳。

在WorkingMemoryFileLogger.java文件的writeToDisk方法中修改代码。以下是现有代码

rxjs

以下是修改后的代码

angular2-websocket/angular2-websocket