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) {
}