didfet пре 10 година
родитељ
комит
5d54d8ebbd
2 измењених фајлова са 28 додато и 19 уклоњено
  1. 1 1
      pom.xml
  2. 27 18
      src/main/java/info/fetter/logstashforwarder/FileReader.java

+ 1 - 1
pom.xml

@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>logstash-forwarder-java</groupId>
 	<artifactId>logstash-forwarder-java</artifactId>
-	<version>0.2.2</version>
+	<version>0.2.3-SNAPSHOT</version>
 	<name>logstash-forwarder-java</name>
 	<description>Java version of logstash forwarder</description>
 	<url>https://github.com/didfet/logstash-forwarder-java</url>

+ 27 - 18
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;
 	}