[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