[CalendarServer-changes] [1766]
CalendarServer/trunk/twistedcaldav/admin
source_changes at macosforge.org
source_changes at macosforge.org
Tue Aug 7 14:12:44 PDT 2007
Revision: 1766
http://trac.macosforge.org/projects/calendarserver/changeset/1766
Author: cdaboo at apple.com
Date: 2007-08-07 14:12:43 -0700 (Tue, 07 Aug 2007)
Log Message:
-----------
Limit log analysis to a set number of days in the past.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/admin/logs.py
CalendarServer/trunk/twistedcaldav/admin/options.py
Modified: CalendarServer/trunk/twistedcaldav/admin/logs.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/admin/logs.py 2007-08-07 18:16:20 UTC (rev 1765)
+++ CalendarServer/trunk/twistedcaldav/admin/logs.py 2007-08-07 21:12:43 UTC (rev 1766)
@@ -24,6 +24,7 @@
"""
+import datetime
import plistlib
import sys
import time
@@ -54,7 +55,7 @@
return str(long(value) + add)
class Stats(object):
- def __init__(self, fp):
+ def __init__(self, fp, days):
self.fp = fp
self._data = None
@@ -66,11 +67,38 @@
if self._data is None:
self._data = statsTemplate
self.save()
+
+ self.earliest_date = datetime.date.today() - datetime.timedelta(days=days)
+ MONTH_MAP = {
+ 'Jan':1,
+ 'Feb':2,
+ 'Mar':3,
+ 'Apr':4,
+ 'May':5,
+ 'Jun':6,
+ 'Jul':7,
+ 'Aug':8,
+ 'Sep':9,
+ 'Oct':10,
+ 'Nov':11,
+ 'Dec':12,
+ }
+
def addDate(self, date):
+ # Check that log entry is within our earliest date bound
+ day = int(date[0:2])
+ month = Stats.MONTH_MAP[date[3:6]]
+ year = int(date[7:11])
+ log_date = datetime.date(year=year, month=month, day=day)
+ if log_date < self.earliest_date:
+ return False
+
if not self._data.startDate:
self._data.startDate = date
self._data.endDate = date
+
+ return True
def getDateRange(self):
return (self._data.startDate, self._data.endDate)
@@ -221,9 +249,10 @@
self.noOutput = self.config['nooutput']
self.readOnly = self.config['readonly']
+ self.days = self.config['days']
self.logfile = self.config['logfile']
- self.stats = Stats(self.config['statsfile'])
+ self.stats = Stats(self.config['statsfile'], self.days)
def run(self):
@@ -244,17 +273,17 @@
else:
pline = parseCLFLine(line)
- self.stats.addDate(pline[3])
- self.stats.addBytes(int(pline[6]))
- self.stats.addRequestStats(pline[4].split(' ')[0], int(pline[5]), int(pline[6]), float(pline[9][:-3]))
- self.stats.addTimeOfDayStats(pline[4].split(' ')[0], pline[3][pline[3].find(":") + 1:][:5])
- self.stats.addStatusStats(int(pline[5]))
-
- if len(pline) > 7:
- self.stats.addUserAgent(pline[8])
-
- if pline[2] != "-":
- self.stats.addActiveUser(pline[2])
+ if self.stats.addDate(pline[3]):
+ self.stats.addBytes(int(pline[6]))
+ self.stats.addRequestStats(pline[4].split(' ')[0], int(pline[5]), int(pline[6]), float(pline[9][:-3]))
+ self.stats.addTimeOfDayStats(pline[4].split(' ')[0], pline[3][pline[3].find(":") + 1:][:5])
+ self.stats.addStatusStats(int(pline[5]))
+
+ if len(pline) > 7:
+ self.stats.addUserAgent(pline[8])
+
+ if pline[2] != "-":
+ self.stats.addActiveUser(pline[2])
if (50 * line_count) / total_count > last_count:
sys.stdout.write(".")
Modified: CalendarServer/trunk/twistedcaldav/admin/options.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/admin/options.py 2007-08-07 18:16:20 UTC (rev 1765)
+++ CalendarServer/trunk/twistedcaldav/admin/options.py 2007-08-07 21:12:43 UTC (rev 1766)
@@ -106,6 +106,10 @@
PARAM_MEGA,
PARAM_GIGA,
]
+
+ optParameters = [
+ ['days', 'd', 30, 'Age threshold for log analysis.'],
+ ]
def __init__(self):
SubCommand.__init__(self)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070807/f48821f0/attachment.html
More information about the calendarserver-changes
mailing list