Log scanning program using multi-level generators and iterators. Separation of levels makes it easy to modify the program for different types of logfile. Handles the case where logs are spread over many files