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
Assuming you're reading the log line by line:
import re
for line in log:
if re.match("2012/09/30-00:00:1[0-3]", line):
print line
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With