[Checkins] SVN: zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/ Added option to clear stats from monitor.
Jim Fulton
jim at zope.com
Mon Sep 8 14:31:57 EDT 2008
Log message for revision 90960:
Added option to clear stats from monitor.
Changed:
U zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/README.txt
U zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/__init__.py
-=-
Modified: zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/README.txt
===================================================================
--- zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/README.txt 2008-09-08 17:57:00 UTC (rev 90959)
+++ zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/README.txt 2008-09-08 18:31:56 UTC (rev 90960)
@@ -164,8 +164,25 @@
...
ValueError: Invalid logger name: test.foo
+You can specify a second argument with a value of 'clear', ro clear
+statistics:
+ >>> plugin = zc.monitorlogstats.monitor(sys.stdout, 'test', 'clear')
+ 2008-09-05T21:10:16
+ 20 22 'test.foo Zzzzz'
+ 50 2 'test Waaa'
+ >>> plugin = zc.monitorlogstats.monitor(sys.stdout, 'test', 'clear')
+ 2008-09-05T21:10:17
+
+.. Edge case:
+
+ >>> plugin = zc.monitorlogstats.monitor(sys.stdout, 'test', 'yes')
+ Traceback (most recent call last):
+ ...
+ ValueError: The second argument, if present, must have the value 'clear'.
+
+
.. Cleanup:
>>> logging.getLogger().removeHandler(handler)
Modified: zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/__init__.py
===================================================================
--- zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/__init__.py 2008-09-08 17:57:00 UTC (rev 90959)
+++ zc.monitorlogstats/branches/dev/src/zc/monitorlogstats/__init__.py 2008-09-08 18:31:56 UTC (rev 90960)
@@ -43,11 +43,18 @@
logger = logging.getLogger(None)
else:
logger = logging.getLogger(loggername)
+
+ if clear and clear != 'clear':
+ raise ValueError(
+ "The second argument, if present, must have the value 'clear'.")
+
for handler in logger.handlers:
if isinstance(handler, CountingHandler):
f.write(handler.start_time.isoformat('T')+'\n')
for record in handler.statistics:
f.write("%s %s %r\n" % record)
+ if clear:
+ handler.clear()
break
else:
raise ValueError("Invalid logger name: "+loggername)
More information about the Checkins
mailing list