From 3fdfc060910f344918ca5801aed59692b7910cf9 Mon Sep 17 00:00:00 2001 From: Joro Date: Thu, 22 Nov 2018 18:20:13 +0200 Subject: [PATCH 1/2] added functionality to add print more than one json object per file in FileLogger. --- .../data/json/generator/log/FileLogger.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java b/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java index 32ddd25..e6634c6 100644 --- a/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java +++ b/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java @@ -22,10 +22,15 @@ public class FileLogger implements EventLogger { public static final String OUTPUT_DIRECTORY_PROP_NAME = "output.directory"; public static final String FILE_PREFIX_PROP_NAME = "file.prefix"; public static final String FILE_EXTENSION_PROP_NAME = "file.extension"; + public static final String NUM_OF_LINES = "file.lines"; + private File outputDirectory; private String filePrefix; private String fileExtension; + private int numOfLines = 1; + private int counterOfLines = 1; + File f; public FileLogger(Map props) throws IOException { String outputDir = (String) props.get(OUTPUT_DIRECTORY_PROP_NAME); @@ -39,6 +44,10 @@ public FileLogger(Map props) throws IOException { } filePrefix = (String) props.get(FILE_PREFIX_PROP_NAME); fileExtension = (String) props.get(FILE_EXTENSION_PROP_NAME); + numOfLines = Integer.valueOf((String) props.get(NUM_OF_LINES)); + f = File.createTempFile(filePrefix, fileExtension, outputDirectory); + log.info("Running with: Number of lines: "+numOfLines); + } @Override @@ -48,8 +57,13 @@ public void logEvent(String event, Map producerConfig) { private void logEvent(String event) { try { - File f = File.createTempFile(filePrefix, fileExtension, outputDirectory); - FileUtils.writeStringToFile(f, event, "UTF-8"); + if (counterOfLines > numOfLines){ + f = File.createTempFile(filePrefix, fileExtension, outputDirectory); + counterOfLines=1; + }else{ + FileUtils.writeStringToFile(f, event+"\n", "UTF-8", true); + counterOfLines++; + } } catch (IOException ioe) { log.error("Unable to create temp file"); } From 82eab54f2ab432b2e9b4404d6449e9878e8d718e Mon Sep 17 00:00:00 2001 From: Joro Date: Fri, 23 Nov 2018 12:01:02 +0200 Subject: [PATCH 2/2] changed the line separator from \n to System.lineSeparator --- .../java/net/acesinc/data/json/generator/log/FileLogger.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java b/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java index e6634c6..e619f8f 100644 --- a/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java +++ b/src/main/java/net/acesinc/data/json/generator/log/FileLogger.java @@ -61,7 +61,7 @@ private void logEvent(String event) { f = File.createTempFile(filePrefix, fileExtension, outputDirectory); counterOfLines=1; }else{ - FileUtils.writeStringToFile(f, event+"\n", "UTF-8", true); + FileUtils.writeStringToFile(f, event+System.lineSeparator(), "UTF-8", true); counterOfLines++; } } catch (IOException ioe) {