diff --git a/pom.xml b/pom.xml index a0d59d2..eae56f1 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 logstash-forwarder-java logstash-forwarder-java - 0.2.2 + 0.2.3-SNAPSHOT logstash-forwarder-java Java version of logstash forwarder https://github.com/didfet/logstash-forwarder-java diff --git a/src/main/java/info/fetter/logstashforwarder/FileReader.java b/src/main/java/info/fetter/logstashforwarder/FileReader.java index 59597fd..53b787b 100644 --- a/src/main/java/info/fetter/logstashforwarder/FileReader.java +++ b/src/main/java/info/fetter/logstashforwarder/FileReader.java @@ -70,23 +70,34 @@ public class FileReader extends Reader { private int readFile(FileState state, int spaceLeftInSpool) { File file = state.getFile(); long pointer = state.getPointer(); - if(state.isDeleted() || state.getRandomAccessFile() == null) { // Don't try to read this file - pointerMap.put(file, pointer); - return 0; - } else { - int eventListSizeBefore = eventList.size(); - if(logger.isTraceEnabled()) { - logger.trace("File : " + file + " pointer : " + pointer); - logger.trace("Space left in spool : " + spaceLeftInSpool); - } - if(isCompressedFile(state)) { - pointer = file.length(); + int numberOfEvents = 0; + try { + if(state.isDeleted() || state.getRandomAccessFile() == null) { // Don't try to read this file + if(logger.isTraceEnabled()) { + logger.trace("File : " + file + " has been deleted"); + } + } else if(state.getRandomAccessFile().length() == 0) { + if(logger.isTraceEnabled()) { + logger.trace("File : " + file + " is empty"); + } } else { - pointer = readLines(state, spaceLeftInSpool); + int eventListSizeBefore = eventList.size(); + if(logger.isTraceEnabled()) { + logger.trace("File : " + file + " pointer : " + pointer); + logger.trace("Space left in spool : " + spaceLeftInSpool); + } + if(isCompressedFile(state)) { + pointer = file.length(); + } else { + pointer = readLines(state, spaceLeftInSpool); + } + numberOfEvents = eventList.size() - eventListSizeBefore; } - pointerMap.put(file, pointer); - return eventList.size() - eventListSizeBefore; // Return number of events read + } catch(IOException e) { + logger.warn("Exception raised while reading file : " + state.getFile(), e); } + pointerMap.put(file, pointer); + return numberOfEvents; // Return number of events read } private boolean isCompressedFile(FileState state) { @@ -105,8 +116,7 @@ public class FileReader extends Reader { } } } catch(IOException e) { - logger.warn("Exception raised while reading file : " + state.getFile()); - e.printStackTrace(); + logger.warn("Exception raised while reading file : " + state.getFile(), e); } return false; } @@ -129,8 +139,7 @@ public class FileReader extends Reader { } reader.seek(pos); // Ensure we can re-read if necessary } catch(IOException e) { - logger.warn("Exception raised while reading file : " + state.getFile()); - e.printStackTrace(); + logger.warn("Exception raised while reading file : " + state.getFile(), e); } return pos; }