summaryrefslogtreecommitdiff
path: root/java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java')
-rw-r--r--java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java b/java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java
index 2b99289cd1..d77731d09f 100644
--- a/java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java
+++ b/java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java
@@ -30,8 +30,10 @@ import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
/**
* Utility to simplify the monitoring of Log4j file output
@@ -42,6 +44,8 @@ import java.util.List;
*/
public class LogMonitor
{
+ private static final Logger _logger = Logger.getLogger(LogMonitor.class);
+
// The file that the log statements will be written to.
private final File _logfile;
@@ -90,6 +94,8 @@ public class LogMonitor
_appender.setImmediateFlush(true);
Logger.getRootLogger().addAppender(_appender);
}
+
+ _logger.info("Created LogMonitor. Monitoring file: " + _logfile.getAbsolutePath());
}
/**
@@ -156,6 +162,39 @@ public class LogMonitor
return results;
}
+ public Map<String, List<String>> findMatches(String... pattern) throws IOException
+ {
+
+ Map<String, List<String>> results= new HashMap<String, List<String>>();
+ for (String p : pattern)
+ {
+ results.put(p, new LinkedList<String>());
+ }
+ LineNumberReader reader = new LineNumberReader(new FileReader(_logfile));
+ try
+ {
+ while (reader.ready())
+ {
+ String line = reader.readLine();
+ if (reader.getLineNumber() > _linesToSkip)
+ {
+ for (String p : pattern)
+ {
+ if (line.contains(p))
+ {
+ results.get(p).add(line);
+ }
+ }
+ }
+ }
+ }
+ finally
+ {
+ reader.close();
+ }
+
+ return results;
+ }
/**
* Checks the log file for a given message to appear. If the caller
* has previously called {@link #markDiscardPoint()}, lines up until the discard