From ba275b98fcf7a3ae70a8391796aac27d5afdcd9f Mon Sep 17 00:00:00 2001 From: Seth Ladygo Date: Wed, 23 Jan 2019 13:52:48 -0800 Subject: [PATCH] Add log file and skeleton code for visualization data --- .gitignore | 1 + build.gradle | 7 +++++++ src/main/java/EsperProcessor.java | 15 +++++++++++++- src/main/java/Viz.java | 34 +++++++++++++++++++++++++++++++ src/main/resources/logback.xml | 23 +++++++++++++++++---- 5 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 src/main/java/Viz.java diff --git a/.gitignore b/.gitignore index 2ff0aa9..8a0305b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /.meghanada/ *.csv /config/config.properties +/logs/viz.log diff --git a/build.gradle b/build.gradle index 3c33742..f995c44 100644 --- a/build.gradle +++ b/build.gradle @@ -41,6 +41,13 @@ run { } } +task runViz(type: JavaExec) { + dependsOn classes + systemProperty 'logback.configurationFile', 'src/main/resources/logback.xml' + classpath sourceSets.main.runtimeClasspath + main = 'Viz' +} + testlogger { theme 'standard' showStandardStreams true diff --git a/src/main/java/EsperProcessor.java b/src/main/java/EsperProcessor.java index 96db03e..d24e5f3 100644 --- a/src/main/java/EsperProcessor.java +++ b/src/main/java/EsperProcessor.java @@ -21,7 +21,8 @@ import ats.plugin.OHLCPlugInViewFactory; public class EsperProcessor implements TickProcessor { - final Logger log = LoggerFactory.getLogger(EsperProcessor.class); + static final Logger log = LoggerFactory.getLogger(EsperProcessor.class); + static final Logger viz = LoggerFactory.getLogger(Viz.LOG_NAME); EPServiceProvider engine; TradingManager trader; @@ -49,6 +50,7 @@ public class EsperProcessor implements TickProcessor { // addLogStatement("TickEvent"); + addVizDataStreamHandler(); addLogStreamHandler(); // respond to long entry events @@ -161,6 +163,17 @@ public class EsperProcessor implements TickProcessor { return statement; } + /** + * Add a simple EPL statement to the Esper engine that logs any + * event that matches the event name. + */ + private EPStatement addVizDataStreamHandler() { + return addStatement("select * from VizDataStream", + (newData, oldData) -> { + viz.info(newData[0].get("event").toString()); + }); + } + /** * Add a simple EPL statement to the Esper engine that logs any * event that matches the event name. diff --git a/src/main/java/Viz.java b/src/main/java/Viz.java new file mode 100644 index 0000000..d665a5b --- /dev/null +++ b/src/main/java/Viz.java @@ -0,0 +1,34 @@ +import java.util.StringJoiner; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Viz converts visualization log data into a graphical + * representation. + */ +public class Viz { + public static final String LOG_NAME = "viz-data"; + static final Logger log = LoggerFactory.getLogger("Viz"); + static final Logger viz = LoggerFactory.getLogger(LOG_NAME); + + + /** + * Run the converter. + */ + public static void main(String[] args) { + + } + + /** + * Convert event data to our preferred format. This format can be + * placed into a log, which we can later read back in. + */ + public static String eventString(Object... objects) { + StringJoiner sj = new StringJoiner(", "); + for (Object o : objects) { + sj.add(o != null ? o.toString() : "null"); + } + return sj.toString(); + } +} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 4b2c13d..f59311c 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -15,21 +15,36 @@ %highlight(%-5level) %cyan(%logger{15}) - %msg %n - + + logs/run.log false %date %-5level %logger{35}: %msg%n - + + + + + logs/viz.log + false + + %msg%n + + + + + + + - + -