What's the best way to print log lines that match a datetime range.
For example:
I would like to print only lines with dates
from: 2012/09/30-00:00:10
to: 2012/09/30-00:00:13
2012/09/30-00:00:08.773 log error
2012/09/30-00:00:09.034 log warning
2012/09/30-00:00:09.352 log info
2012/09/30-00:00:10.526 log info
2012/09/30-00:00:10.995 log warning
2012/09/30-00:00:12.014 log warning
2012/09/30-00:00:18.035 log error
2012/09/30-00:00:21.733 log fatal
2012/09/30-00:00:21.981 log info
It should print:
2012/09/30-00:00:10.526 log line
2012/09/30-00:00:10.995 log line
2012/09/30-00:00:12.014 log line
I would like to do this in a cost-effective way, as I'm using production servers. Python only please.
Thanks!
解决方案
Actullay, the log format allows to compare date strings without their conversion to datetime.
with open('mylog.log','r') as f:
for line in f:
d = line.split(" ",1)[0]
if d >= '2012/09/30-00:00:10' and d <= '2012/09/30-00:00:13':
print line