Add Timestamp to Feed Logs

As per the request of users. This will help determine the time it
takes to ingest data.

Change-Id: I3bb8bb0679108d1eba879d18af1e2119fe7e336a
Reviewed-on: https://asterix-gerrit.ics.uci.edu/833
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <hubailmor@gmail.com>
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedLogManager.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedLogManager.java
index 5bb8ec3..9d887b6 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedLogManager.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedLogManager.java
@@ -27,6 +27,9 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardOpenOption;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.TreeSet;
 
 import org.apache.commons.io.FileUtils;
@@ -46,7 +49,8 @@
     public static final String BAD_RECORDS_FILE_NAME = "failed_record.log";
     public static final String START_PREFIX = "s:";
     public static final String END_PREFIX = "e:";
-    public static final int PREFIX_SIZE = 2;
+    private static final String DATE_FORMAT_STRING = "MM/dd/yyyy HH:mm:ss";
+    public static final int PREFIX_SIZE = START_PREFIX.length() + DATE_FORMAT_STRING.length() + 1;
     private String currentPartition;
     private final TreeSet<String> completed;
     private final Path dir;
@@ -55,6 +59,7 @@
     private BufferedWriter recordLogger;
     private final StringBuilder stringBuilder = new StringBuilder();
     private int count = 0;
+    private static final DateFormat df = new SimpleDateFormat(DATE_FORMAT_STRING);
 
     public FeedLogManager(File file) throws HyracksDataException {
         try {
@@ -144,6 +149,8 @@
 
     public synchronized void logProgress(String log) throws IOException {
         stringBuilder.setLength(0);
+        stringBuilder.append(df.format((new Date())));
+        stringBuilder.append(' ');
         stringBuilder.append(log);
         stringBuilder.append(ExternalDataConstants.LF);
         progressLogger.write(stringBuilder.toString());
@@ -152,6 +159,8 @@
 
     public synchronized void logError(String error, Throwable th) throws IOException {
         stringBuilder.setLength(0);
+        stringBuilder.append(df.format((new Date())));
+        stringBuilder.append(' ');
         stringBuilder.append(error);
         stringBuilder.append(ExternalDataConstants.LF);
         stringBuilder.append(th.toString());
@@ -164,6 +173,8 @@
         stringBuilder.setLength(0);
         stringBuilder.append(record);
         stringBuilder.append(ExternalDataConstants.LF);
+        stringBuilder.append(df.format((new Date())));
+        stringBuilder.append(' ');
         stringBuilder.append(errorMessage);
         stringBuilder.append(ExternalDataConstants.LF);
         recordLogger.write(stringBuilder.toString());