diff --git a/pom.xml b/pom.xml index af50f2c..cadf354 100644 --- a/pom.xml +++ b/pom.xml @@ -69,6 +69,11 @@ json-simple 1.1.1 + + com.opencsv + opencsv + 5.7.1 + diff --git a/src/main/java/altk/comm/engine/Broadcast.java b/src/main/java/altk/comm/engine/Broadcast.java index 2538d27..6453593 100644 --- a/src/main/java/altk/comm/engine/Broadcast.java +++ b/src/main/java/altk/comm/engine/Broadcast.java @@ -2,6 +2,7 @@ package altk.comm.engine; import java.io.IOException; import java.io.PrintWriter; +import java.io.StringWriter; import java.time.LocalTime; import java.util.ArrayList; import java.util.Arrays; @@ -19,9 +20,12 @@ import java.util.concurrent.atomic.AtomicInteger; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.log4j.Category; import org.apache.log4j.Logger; import org.json.simple.JSONObject; +import com.opencsv.CSVWriter; + import altk.comm.engine.Job.CommJobStatus; import altk.comm.engine.exception.BroadcastError; import altk.comm.engine.exception.BroadcastException; @@ -43,6 +47,8 @@ public abstract class Broadcast static final String DAILY_STOP_KEY = "daily_stop"; static final String DAILY_START_KEY = "daily_start"; + static final String CSV_LOGGER = "csv"; + public final String broadcastType; private String broadcastId; @@ -99,6 +105,7 @@ public abstract class Broadcast private AtomicInteger successCount; private int pauseThreshold; private int lastPauseCount; + private Logger csvLogger; public static enum BroadcastState @@ -429,6 +436,7 @@ public abstract class Broadcast serviceActivityCount = Integer.valueOf(0); transactions = Integer.valueOf(0); lastPauseCount = 0; + csvLogger = Logger.getLogger(CSV_LOGGER); } private void incrementTransactions(int delta) @@ -1529,6 +1537,15 @@ public abstract class Broadcast return dataMap; } + public void logCSV(String[] data) + { + StringWriter writer = new StringWriter(); + @SuppressWarnings("resource") + CSVWriter csvWriter = new CSVWriter(writer); + csvWriter.writeNext(data); + csvLogger.info(writer); + } + protected void childAddConfigJSON(JSONObject dataMap) { }