[Checkins] SVN: zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/ removed tracelog extension hooks.

Alex Smith asmith at zope.com
Fri Sep 12 10:43:52 EDT 2008


Log message for revision 91090:
  
  removed tracelog extension hooks.
  

Changed:
  U   zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/README.txt
  U   zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/interfaces.py
  U   zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/tracelog.py

-=-
Modified: zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/README.txt
===================================================================
--- zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/README.txt	2008-09-12 14:20:21 UTC (rev 91089)
+++ zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/README.txt	2008-09-12 14:43:51 UTC (rev 91090)
@@ -118,155 +118,3 @@
 Let's clean up before moving on.
 
     >>> faux_app.app_hook = None
-
-
-Tracelog Extensions
-===================
-
-Additional information can be written to the trace log through the use of
-extensions.  Extensions can be registered as named-utilities for any of the
-trace points mentioned above.
-
-    >>> import zc.zservertracelog.interfaces
-    >>> import zope.component
-    >>> import zope.interface
-
-    >>> site_manager = zope.component.getSiteManager()
-
-Extensions implement one or more of the sub-interfaces of ``ITracer``.  Here,
-we'll define a simple extension that just logs how many times it's been
-called.
-
-    >>> class CountTracer(object):
-    ...
-    ...     count = 0
-    ...
-    ...     def __call__(self, logger, trace_point):
-    ...         self.count += 1
-    ...         logger.log('count: %s' % self.count)
-
-
-    >>> count_tracer = CountTracer()
-    >>> site_manager.registerUtility(
-    ...     count_tracer,
-    ...     zc.zservertracelog.interfaces.ITraceRequestStart,
-    ...     'example.Tracer')
-
-Extensions appear in the log with the *X* prefix immediately after any trace
-point they are registered for.
-
-    >>> invokeRequest(req1)
-    B 17954544 2008-09-05T09:47:00 GET /test-req1
-    X 17954544 2008-09-05T09:47:00 example.Tracer count: 1
-    I 17954544 2008-09-05T09:47:00 0
-    C 17954544 2008-09-05T09:47:00
-    A 17954544 2008-09-05T09:47:00 200 ?
-    E 17954544 2008-09-05T09:47:00
-
-Unnamed extension registrations are not allowed and will result in a
-`ValueError` if present during execution.
-
-    >>> site_manager.registerUtility(
-    ...     count_tracer, zc.zservertracelog.interfaces.ITraceRequestStart)
-
-    >>> invokeRequest(req1)
-    Traceback (most recent call last):
-    ...
-    ValueError: Unnamed Tracelog Extension
-
-To fix the problem, we'll just remove the extension.  Since extensions are
-just utilities, removing an extension is accomplished simply by unregistering
-it.
-
-    >>> site_manager.unregisterUtility(
-    ...     count_tracer, zc.zservertracelog.interfaces.ITraceRequestStart)
-    True
-
-    >>> invokeRequest(req1)
-    B 21714736 2008-09-05T13:45:44 GET /test-req1
-    X 23418928 2008-08-26T10:55:00 example.Tracer count: 3
-    I 21714736 2008-09-05T13:45:44 0
-    C 21714736 2008-09-05T13:45:44
-    A 21714736 2008-09-05T13:45:44 200 ?
-    E 21714736 2008-09-05T13:45:44
-
-So far, we've only added extensions for the *Request Start* trace point, and
-adding extensions for other trace points is done in almost the exact same
-way.  The only difference is the interface which an extension is registered
-for.
-
-Here, we'll register the tracer component in the previous examples for the
-other trace points.
-
-    >>> site_manager.registerUtility(
-    ...     count_tracer,
-    ...     zc.zservertracelog.interfaces.ITraceInputAcquired,
-    ...     'example.Tracer')
-
-    >>> site_manager.registerUtility(
-    ...     count_tracer,
-    ...     zc.zservertracelog.interfaces.ITraceApplicationStart,
-    ...     'example.Tracer')
-
-    >>> site_manager.registerUtility(
-    ...     count_tracer,
-    ...     zc.zservertracelog.interfaces.ITraceApplicationEnd,
-    ...     'example.Tracer')
-
-    >>> site_manager.registerUtility(
-    ...     count_tracer,
-    ...     zc.zservertracelog.interfaces.ITraceRequestEnd,
-    ...     'example.Tracer')
-
-Now, that extension is fired at every trace point.
-
-    >>> invokeRequest(req1)
-    B 21930320 2008-09-05T15:53:47 GET /test-req1
-    X 21930320 2008-09-05T15:53:47 example.Tracer count: 4
-    I 21930320 2008-09-05T15:53:47 0
-    X 21930320 2008-09-05T15:53:47 example.Tracer count: 5
-    C 21930320 2008-09-05T15:53:47
-    X 21930320 2008-09-05T15:53:47 example.Tracer count: 6
-    A 21930320 2008-09-05T15:53:47 200 ?
-    X 21930320 2008-09-05T15:53:47 example.Tracer count: 7
-    E 21930320 2008-09-05T15:53:47
-    X 21930320 2008-09-05T15:53:47 example.Tracer count: 8
-
-
-Overriding Extensions
----------------------
-
-One extension can be overriden with another just by registering the new
-extension with the same name.
-
-Let's add a new extension to demonstrate this.
-
-    >>> class StreetLightTracer(object):
-    ...
-    ...     light = 0
-    ...     colors = ['green', 'yellow', 'red']
-    ...
-    ...     def __call__(self, logger, trace_point):
-    ...         self.light = self.light + 1 % 3
-    ...         logger.log('color: %s' % self.colors[self.light])
-
-    >>> street_light_tracer = StreetLightTracer()
-
-    >>> site_manager.registerUtility(
-    ...     street_light_tracer,
-    ...     zc.zservertracelog.interfaces.ITraceRequestStart,
-    ...     'example.Tracer')
-
-Now, we see output from the new extension.
-
-    >>> invokeRequest(req1)
-    B 23418928 2008-08-26T10:55:00 GET /test-req1
-    X 23418928 2008-08-26T10:55:00 example.Tracer color: yellow
-    I 23418928 2008-08-26T10:55:00 0
-    X 23418928 2008-08-26T10:55:00 example.Tracer count: 9
-    C 23418928 2008-08-26T10:55:00
-    X 23418928 2008-08-26T10:55:00 example.Tracer count: 10
-    A 23418928 2008-08-26T10:55:00 200 ?
-    X 23418928 2008-08-26T10:55:00 example.Tracer count: 11
-    E 23418928 2008-08-26T10:55:00
-    X 23418928 2008-08-26T10:55:00 example.Tracer count: 12

Modified: zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/interfaces.py
===================================================================
--- zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/interfaces.py	2008-09-12 14:20:21 UTC (rev 91089)
+++ zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/interfaces.py	2008-09-12 14:43:51 UTC (rev 91090)
@@ -23,30 +23,3 @@
 
     def log(msg=None, timestamp=None):
         """Write a message to the trace log."""
-
-
-class ITracer(zope.interface.Interface):
-    """Enters trace points."""
-
-    def __call__(logger, trace_point):
-        """Record an entry in the trace log."""
-
-
-class ITraceRequestStart(ITracer):
-    """Enters the *Request Start* trace point."""
-
-
-class ITraceInputAcquired(ITracer):
-    """Enters the *Request Input Acquired* trace point."""
-
-
-class ITraceApplicationStart(ITracer):
-    """Enters the *Application Start* trace point."""
-
-
-class ITraceApplicationEnd(ITracer):
-    """Enters the *Application End* trace point."""
-
-
-class ITraceRequestEnd(ITracer):
-    """Enters the *Request End* trace point."""

Modified: zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/tracelog.py
===================================================================
--- zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/tracelog.py	2008-09-12 14:20:21 UTC (rev 91089)
+++ zc.zservertracelog/branches/alex-extensions-2/src/zc/zservertracelog/tracelog.py	2008-09-12 14:43:51 UTC (rev 91090)
@@ -26,18 +26,8 @@
 import zope.server.http.httprequestparser
 import zope.server.http.httpserverchannel
 
-
-trace_points = {
-    'B': zc.zservertracelog.interfaces.ITraceRequestStart,
-    'I': zc.zservertracelog.interfaces.ITraceInputAcquired,
-    'C': zc.zservertracelog.interfaces.ITraceApplicationStart,
-    'A': zc.zservertracelog.interfaces.ITraceApplicationEnd,
-    'E': zc.zservertracelog.interfaces.ITraceRequestEnd,
-    }
-
 tracelog = logging.getLogger('zc.tracelog')
 
-
 def _format_datetime(dt):
     return dt.replace(microsecond=0).isoformat()
 
@@ -46,18 +36,9 @@
     logger.trace_code = trace_code
     logger.extension_id = None
     logger.log(msg, timestamp)
-    _run_trace_extensions(trace_points[trace_code], logger)
+    logger.trace_code = None
 
 
-def _run_trace_extensions(trace_point, logger):
-    logger.trace_code = 'X'
-    tracers = zope.component.getUtilitiesFor(trace_point)
-    for tname, tracer in tracers:
-        logger.extension_id = tname
-        tracer(logger, trace_point)
-    logger.extension_id = None
-
-
 class TraceLog(object):
     zope.interface.implements(zc.zservertracelog.interfaces.ITraceLog)
 



More information about the Checkins mailing list