private void Iterate(ILogFileReader reader) { foreach (var logEvent in reader.GetEventIterator()) { Console.WriteLine(logEvent.Category); } }
private static void Do(ILogFileReader w) { bool keepAlive = true; Thread workerThread = new Thread(w.Init); Console.CancelKeyPress += (o, e) => { w.Dispose(); keepAlive = false; }; workerThread.Start(); while (keepAlive) ; workerThread.Join(); }
/// <summary> /// Read multiple log files and pair each entry with its timestamp. /// </summary> /// <param name="paths">The paths to the log files to read.</param> /// <param name="headers">Headers from the first log file.</param> /// <returns> /// Returns all entries from the log files with their timestamps, sorted in ascending order. /// Also outputs the headers of the first log file. /// </returns> public IEnumerable <(DateTime dateTime, string entry)> Read(ICollection <string> paths, out ICollection <string> headers) { var lines = new ConcurrentBag <(DateTime dateTime, string entry)>(); Parallel.ForEach(paths, path => { ILogFileReader entryEnumerator = GetLogFileReader(path); foreach (string entry in entryEnumerator.GetEntries()) { lines.Add((ExtractDateTime(entry), entry)); }
private void Initialize(CliArguments arguments) { IEventParser definitions = new JsonEventParser(arguments.Definitions); reader = new SimpleLogReader(arguments.Logfile) { EventDefinition = definitions }; switch (arguments.Format) { case "stdout": generator = new ConsolePrinter(); break; case "html": this.InitializeHtmlReportGenerator(arguments); break; default: generator = new ConsolePrinter(); break; } }
public Processor(ILogFileReader reader, ILogEventDbImporter importer) { _reader = reader; _importer = importer; }