diff --git a/src/main/java/info/fetter/logstashforwarder/FileWatcher.java b/src/main/java/info/fetter/logstashforwarder/FileWatcher.java index 2ed714f..24209a6 100644 --- a/src/main/java/info/fetter/logstashforwarder/FileWatcher.java +++ b/src/main/java/info/fetter/logstashforwarder/FileWatcher.java @@ -49,6 +49,7 @@ public class FileWatcher { public FileWatcher() { try { + logger.debug("Loading saved states"); savedStates = Registrar.readStateFromJson(); } catch(Exception e) { logger.warn("Could not load saved states : " + e.getMessage()); @@ -59,6 +60,7 @@ public class FileWatcher { logger.debug("Initializing FileWatcher"); if(savedStates != null) { for(FileState state : savedStates) { + logger.info("Loading file state: " + state.getFile() + ":" + state.getPointer()); oldWatchMap.put(state.getFile(), state); } } @@ -88,7 +90,7 @@ public class FileWatcher { } public void checkFiles() throws IOException { - logger.debug("Checking files"); + logger.trace("Checking files"); logger.trace("=============="); for(FileAlterationObserver observer : observerList) { observer.checkAndNotify(); @@ -98,7 +100,7 @@ public class FileWatcher { } public int readFiles(FileReader reader) throws IOException, AdapterException { - logger.debug("Reading files"); + logger.trace("Reading files"); logger.trace("=============="); int numberOfLinesRead = reader.readFiles(oldWatchMap.values()); Registrar.writeStateToJson(oldWatchMap.values()); @@ -182,20 +184,23 @@ public class FileWatcher { } } - logger.trace("Refreshing file state"); for(FileState state : newWatchMap.values()) { if(logger.isTraceEnabled()) { - logger.trace("Refreshing file : " + state.getFile()); + logger.trace("Refreshing file state: " + state.getFile()); } FileState oldState = state.getOldFileState(); if(oldState == null) { - logger.trace("File has been truncated or created, not retrieving pointer"); + if(logger.isDebugEnabled()) { + logger.debug("File " + state.getFile() + " has been truncated or created, not retrieving pointer"); + } } else { - logger.trace("File has not been truncated or created, retrieving pointer"); if(logger.isInfoEnabled() && ! state.getFileName().equals(oldState.getFileName())) { logger.info("File rename was detected: " + oldState.getFile() + " -> " + state.getFile()); } + if(logger.isDebugEnabled()) { + logger.debug("File " + state.getFile() + " has not been truncated or created, retrieving pointer: " + oldState.getPointer()); + } state.setPointer(oldState.getPointer()); state.deleteOldFileState(); } @@ -332,7 +337,7 @@ public class FileWatcher { if(markedList != null) { for(File file : markedList) { oldWatchMap.remove(file); - logger.trace("\tFile : " + file + " removed"); + logger.debug("File: " + file + " removed from watchMap"); } } } diff --git a/src/main/java/info/fetter/logstashforwarder/Forwarder.java b/src/main/java/info/fetter/logstashforwarder/Forwarder.java index 8288185..4dce6ad 100644 --- a/src/main/java/info/fetter/logstashforwarder/Forwarder.java +++ b/src/main/java/info/fetter/logstashforwarder/Forwarder.java @@ -56,6 +56,7 @@ public class Forwarder { private static FileReader fileReader; private static InputReader inputReader; private static Level logLevel = INFO; + private static boolean debugWatcherSelected = false; private static ProtocolAdapter adapter; private static Random random = new Random(); private static int signatureLength = 4096; @@ -134,6 +135,7 @@ public class Forwarder { Option helpOption = new Option("help", "print this message"); Option quiet = new Option("quiet", "operate in quiet mode - only emit errors to log"); Option debug = new Option("debug", "operate in debug mode"); + Option debugWatcher = new Option("debugwatcher", "operate watcher in debug mode"); Option trace = new Option("trace", "operate in trace mode"); Option tail = new Option("tail", "read new files from the end"); @@ -160,6 +162,7 @@ public class Forwarder { .addOption(spoolSizeOption) .addOption(quiet) .addOption(debug) + .addOption(debugWatcher) .addOption(trace) .addOption(tail) .addOption(signatureLengthOption) @@ -188,6 +191,9 @@ public class Forwarder { if(line.hasOption("trace")) { logLevel = TRACE; } + if(line.hasOption("debugwatcher")) { + debugWatcherSelected = true; + } if(line.hasOption("tail")) { tailSelected = true; } @@ -205,12 +211,17 @@ public class Forwarder { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("logstash-forwarder", options); } - + private static void setupLogging() { Layout layout = new PatternLayout("%d %p %c{1} - %m%n"); Appender appender = new ConsoleAppender(layout); BasicConfigurator.configure(appender); RootLogger.getRootLogger().setLevel(logLevel); + if(debugWatcherSelected) { + Logger.getLogger(FileWatcher.class).addAppender(appender); + Logger.getLogger(FileWatcher.class).setLevel(DEBUG); + Logger.getLogger(FileWatcher.class).setAdditivity(false); + } // Logger.getLogger(FileReader.class).addAppender((Appender)RootLogger.getRootLogger().getAllAppenders().nextElement()); // Logger.getLogger(FileReader.class).setLevel(TRACE); // Logger.getLogger(FileReader.class).setAdditivity(false);