Пример #1
0
class ByHourHitCounts:

    def __init__(self, output, filters=[]):
        self.output = output
        self.dates = ExtendedList()
        self.serverips = ExtendedList()
        self.sums = {}
        for hour in range(0,24):
            self.sums[str(hour)] = float(0)
        self.filters = filters
    
    def logitem(self, logitem):
        if any([(filter.should_skip(logitem)) for filter in self.filters]):
            return

        date = datetime(logitem["year"],logitem["month"],logitem["day"])
        self.dates.add_if_not_exists(date)
        serverip = logitem["s_ip"]
        self.serverips.add_if_not_exists(serverip)
        self.sums[str(logitem["hour"])] += 1
    
    def end(self):
        for key in self.sums.keys():
            if len(self.dates) == 0:
                self.sums[key] = 0
            else:
                self.sums[key] /= len(self.dates) * len(self.serverips)

        self.output.write(self.sums)
Пример #2
0
 def __init__(self, output, filters=[]):
     self.output = output
     self.dates = ExtendedList()
     self.serverips = ExtendedList()
     self.sums = {}
     for hour in range(0,24):
         self.sums[str(hour)] = float(0)
     self.filters = filters