In <4f952e77-258d-47ae-9d76-a86daa8ac...@googlegroups.com> spe...@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
gor...@panix.com              B is for Basil, assaulted by bears
                                -- Edward Gorey, "The Gashlycrumb Tinies"

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to