[Checkins] SVN: zc.zservertracelog/branches/dev/ Initial stab.
Jim Fulton
jim at zope.com
Fri Apr 27 16:07:20 EDT 2007
Log message for revision 74869:
Initial stab.
Changed:
A zc.zservertracelog/branches/dev/buildout.cfg
A zc.zservertracelog/branches/dev/src/
A zc.zservertracelog/branches/dev/src/zc/
A zc.zservertracelog/branches/dev/src/zc/__init__.py
A zc.zservertracelog/branches/dev/src/zc/zservertracelog/
A zc.zservertracelog/branches/dev/src/zc/zservertracelog/__init__.py
A zc.zservertracelog/branches/dev/src/zc/zservertracelog/configure.zcml
-=-
Added: zc.zservertracelog/branches/dev/buildout.cfg
===================================================================
--- zc.zservertracelog/branches/dev/buildout.cfg 2007-04-27 19:35:53 UTC (rev 74868)
+++ zc.zservertracelog/branches/dev/buildout.cfg 2007-04-27 20:07:19 UTC (rev 74869)
@@ -0,0 +1,44 @@
+[buildout]
+develop = .
+parts = instance
+
+[zope3]
+recipe = zc.recipe.zope3checkout
+url = svn://svn.zope.org/repos/main/Zope3/tags/3.3.0
+
+[app]
+recipe = zc.zope3recipes:app
+eggs = zc.zservertracelog
+servers = zserver
+site.zcml = <include package="zope.app" />
+ <principal
+ id="zope.manager"
+ title="Manager"
+ login="jim"
+ password_manager="SHA1"
+ password="40bd001563085fc35165329ea1ff5c5ecbdbbeef"
+ />
+ <grant
+ role="zope.Manager"
+ principal="zope.manager"
+ />
+ <includeOverrides package="zc.zservertracelog" />
+
+[instance]
+recipe = zc.zope3recipes:instance
+application = app
+zope.conf =
+ ${database:zconfig}
+
+ <logger>
+ name zc.tracelog
+ propagate false
+
+ <logfile>
+ path ${buildout:directory}/trace.log
+ format %(message)s
+ </logfile>
+ </logger>
+
+[database]
+recipe = zc.recipe.filestorage
Property changes on: zc.zservertracelog/branches/dev/buildout.cfg
___________________________________________________________________
Name: svn:eol-style
+ native
Added: zc.zservertracelog/branches/dev/src/zc/__init__.py
===================================================================
--- zc.zservertracelog/branches/dev/src/zc/__init__.py 2007-04-27 19:35:53 UTC (rev 74868)
+++ zc.zservertracelog/branches/dev/src/zc/__init__.py 2007-04-27 20:07:19 UTC (rev 74869)
@@ -0,0 +1,5 @@
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Property changes on: zc.zservertracelog/branches/dev/src/zc/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added: zc.zservertracelog/branches/dev/src/zc/zservertracelog/__init__.py
===================================================================
--- zc.zservertracelog/branches/dev/src/zc/zservertracelog/__init__.py 2007-04-27 19:35:53 UTC (rev 74868)
+++ zc.zservertracelog/branches/dev/src/zc/zservertracelog/__init__.py 2007-04-27 20:07:19 UTC (rev 74869)
@@ -0,0 +1,92 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Crude Tracelog Hack for ZServer
+"""
+import datetime, re, logging
+
+from zope.server.http.commonaccesslogger import CommonAccessLogger
+from zope.server.http import wsgihttpserver
+import zope.server.http.httprequestparser
+
+import zope.server.http.httpserverchannel
+from zope.app.server import servertype
+
+from zope.app.wsgi import WSGIPublisherApplication
+
+logger = logging.getLogger('zc.tracelog')
+
+def now():
+ return datetime.datetime.utcnow().replace(microsecond=0).isoformat()
+
+class Parser(zope.server.http.httprequestparser.HTTPRequestParser):
+
+ def __init__(self, x):
+ self._Channel__B = now()
+ zope.server.http.httprequestparser.HTTPRequestParser.__init__(self, x)
+
+class Channel(zope.server.http.httpserverchannel.HTTPServerChannel):
+ parser_class = Parser
+
+ def handle_request(self, parser):
+ logger.info("B %s %s %s %s", id(self), parser.__B,
+ parser.command, parser.path)
+ logger.info("I %s %s %s", id(self), now(),
+ parser.content_length)
+ zope.server.http.httpserverchannel.HTTPServerChannel.handle_request(
+ self, parser)
+
+class Server(wsgihttpserver.WSGIHTTPServer):
+
+ channel_class = Channel
+
+ def executeRequest(self, task):
+ """Overrides HTTPServer.executeRequest()."""
+ logger.info("C %s %s", id(task.channel), now())
+ env = task.getCGIEnvironment()
+ env['wsgi.input'] = task.request_data.getBodyStream()
+
+ def start_response(status, headers):
+ # Prepare the headers for output
+ status, reason = re.match('([0-9]*) (.*)', status).groups()
+ task.setResponseStatus(status, reason)
+ task.appendResponseHeaders(['%s: %s' % i for i in headers])
+
+ # Return the write method used to write the response data.
+ return wsgihttpserver.fakeWrite
+
+ # Call the application to handle the request and write a response
+ response = self.application(env, start_response)
+ length = [h.split(': ')[1].strip()
+ for h in task.accumulated_headers
+ if h.lower().startswith('content-length: ')]
+ if length:
+ length = length[0]
+ else:
+ length = '?'
+ logger.info("A %s %s %s %s", id(self), now(),
+ task.status, length)
+ task.write(response)
+ logger.info("E %s %s", id(self), now())
+
+http = servertype.ServerType(
+ Server,
+ WSGIPublisherApplication,
+ CommonAccessLogger,
+ 8080, True)
+
+pmhttp = servertype.ServerType(
+ wsgihttpserver.PMDBWSGIHTTPServer,
+ WSGIPublisherApplication,
+ CommonAccessLogger,
+ 8013, True)
Property changes on: zc.zservertracelog/branches/dev/src/zc/zservertracelog/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added: zc.zservertracelog/branches/dev/src/zc/zservertracelog/configure.zcml
===================================================================
--- zc.zservertracelog/branches/dev/src/zc/zservertracelog/configure.zcml 2007-04-27 19:35:53 UTC (rev 74868)
+++ zc.zservertracelog/branches/dev/src/zc/zservertracelog/configure.zcml 2007-04-27 20:07:19 UTC (rev 74869)
@@ -0,0 +1,15 @@
+<configure xmlns="http://namespaces.zope.org/zope">
+
+ <utility
+ name="WSGI-HTTP"
+ component=".http"
+ provides="zope.app.server.servertype.IServerType"
+ />
+
+ <utility
+ name="WSGI-PostmortemDebuggingHTTP"
+ component=".pmhttp"
+ provides="zope.app.server.servertype.IServerType"
+ />
+
+</configure>
Property changes on: zc.zservertracelog/branches/dev/src/zc/zservertracelog/configure.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the Checkins
mailing list