timegrep.py by Dennis Williamson 20100113
in response to http://serverfault.com/questions/101744/fast-extraction-of-a-time-range-from-syslog-logfile
Improvements by Fabrice FACORAT 20110914
Perform a binary search through a log file to find a range of times
and print the corresponding lines
Supported Log Formats:
- W3C Extended: %Y-%m-%d %H:%M:%S
- Syslog: %b %d %H:%M:%S
- NSCA Common/Apache: host rfc931 username [%d/%b/%Y:%H:%M:%S +TZ]
- Bind8: %d-%b-%Y %H:%M:%S.
- Nginx Error logs: %Y/%m/%d %H:%M:%S.
Tested with Python 2.6
TODO: Make sure that it works if the seek falls in the middle of
the first or last line
TODO: Make sure it's not blind to a line where the sync read falls
exactly at the beginning of the line being searched for and
then gets skipped by the second read
DONE: Support more log time format
TODO: Support case when log files may not be properly sorted ( remove superfluous lines )
DONE: Support on the fly log format definition with --log-regexp
TODO: Brief introduction on what you do with files - including link to relevant help section.