Search log for string and display hourly/daily report
John Gordon
gordon at panix.com
Wed Jan 23 16:25:59 EST 2013
In <4f952e77-258d-47ae-9d76-a86daa8acaa2 at googlegroups.com> spek06 at gmail.com writes:
> I need to search a log file for a specific string (Successfully Sent) and
> report the number of instances in the last hour (from when executed) and
> total for the day so far (midnight till the time executed). Can anyone
> provide any examples of such a program or get me started?
from datetime import datetime, timedelta
from time import mktime, strptime
now = datetime.now()
midnight = now.replace(hour=0, minute=0, second=0, microsecond=0)
one_hour_ago = now - timedelta(hours=1)
daily_instances = 0
hourly_instances = 0
with open('myfile.log') as logfile:
for line in logfile:
if 'Successfully Sent' in line:
time_string = line[0:19]
struct = strptime(time_string, "%Y-%m-%dT%H:%M:%S")
log_time = datetime.fromtimestamp(mktime(struct))
if log_time > midnight:
daily_instances += 1
if log_time > one_hour_ago:
hourly_instances += 1
print "Instances in the last hour: ", hourly_instances
print "Instances since midnight: ", daily_instances
This code assumes that log lines begin with a timestamp similar to
"2013-01-23T09:27:01". If the timestamp is in a different format, or
occurs elsewhere in the line, you'll have to adjust for that.
--
John Gordon A is for Amy, who fell down the stairs
gordon at panix.com B is for Basil, assaulted by bears
-- Edward Gorey, "The Gashlycrumb Tinies"
More information about the Python-list
mailing list