[Checkins] SVN: zc.zkzopeserver/trunk/s Added optional support for zc.zservertracelog.
Jim Fulton
jim at zope.com
Wed Jan 18 20:45:40 UTC 2012
Log message for revision 124068:
Added optional support for zc.zservertracelog.
Changed:
U zc.zkzopeserver/trunk/setup.py
U zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt
U zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py
U zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py
-=-
Modified: zc.zkzopeserver/trunk/setup.py
===================================================================
--- zc.zkzopeserver/trunk/setup.py 2012-01-17 20:53:10 UTC (rev 124067)
+++ zc.zkzopeserver/trunk/setup.py 2012-01-18 20:45:39 UTC (rev 124068)
@@ -15,7 +15,8 @@
install_requires = ['setuptools', 'zc.zk', 'zope.server']
extras_require = dict(
- test=['zope.testing', 'zc.zk [static,test]', 'zc.monitor']
+ test=['zope.testing', 'zc.zk [static,test]', 'zc.monitor',
+ 'zc.zservertracelog']
)
entry_points = """
Modified: zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt
===================================================================
--- zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt 2012-01-17 20:53:10 UTC (rev 124067)
+++ zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt 2012-01-18 20:45:39 UTC (rev 124068)
@@ -118,6 +118,8 @@
>>> kw = dict(parser.items('server:main'))
>>> del kw['use']
+ >>> import zope.testing.loggingsupport
+ >>> handler = zope.testing.loggingsupport.InstalledHandler('zc.tracelog')
>>> @zc.thread.Thread
... def server():
... run(wsgiref.simple_server.demo_app, {}, **kw)
@@ -144,6 +146,11 @@
>>> zk.get_children('/fooservice/providers')
[]
+ >>> print handler
+ <BLANKLINE>
+
+ >>> handler.uninstall()
+
Some notes on the monitor server:
- A monitor server won't be useful unless you've registered some
@@ -152,10 +159,71 @@
- ``zc.monitor`` isn't a dependency of ``zc.zkzopeserver`` and won't
be in the Python path unless you install it.
+``zc.zservertracslog`` integration
+==================================
+The package ``zc.zservertracelog`` extends zope.server to provide
+support for "trace" logs that have multiple log entries per web
+request as a request goes through various stages.
+
+If you want to use ``zc.zservertraeslog`` with ``zc.zkzopeserver``,
+make sure ``zc.zservertracelog`` is in your Python path and include
+the ``zservertracelog`` option in your server section::
+
+
+ [server:main]
+ use = egg:zc.zkzopeserver
+ zookeeper = zookeeper.example.com:2181
+ path = /fooservice/providers
+ monitor_server = 127.0.0.1:0
+ zservertracelog = true
+
+.. -> server_config
+
+ >>> parser = ConfigParser.RawConfigParser()
+ >>> parser.readfp(StringIO.StringIO(server_config))
+ >>> kw = dict(parser.items('server:main'))
+ >>> del kw['use']
+
+ >>> handler = zope.testing.loggingsupport.InstalledHandler('zc.tracelog')
+ >>> @zc.thread.Thread
+ ... def server():
+ ... run(wsgiref.simple_server.demo_app, {}, **kw)
+
+ >>> zc.zkzopeserver.event_for_testing.wait(1)
+
+ >>> [port] = [int(c.split(':')[1])
+ ... for c in zk.get_children('/fooservice/providers')]
+ >>> print urllib.urlopen('http://127.0.0.1:%s/' % port).read()
+ ... # doctest: +ELLIPSIS
+ Hello world!
+ ...
+
+ >>> zc.zkzopeserver.stop_for_testing(server)
+
+ >>> print handler
+ zc.tracelog INFO
+ B 4358585232 2012-01-18 15:31:31.050680 GET /
+ zc.tracelog INFO
+ I 4358585232 2012-01-18 15:31:31.050887 0
+ zc.tracelog INFO
+ C 4358585232 2012-01-18 15:31:31.051068
+ zc.tracelog INFO
+ A 4358585232 2012-01-18 15:31:31.051580 200 ?
+ zc.tracelog INFO
+ E 4358585232 2012-01-18 15:31:31.051692
+
+ >>> handler.uninstall()
+
+
Change History
==============
+0.2.0 (2012-01-18)
+------------------
+
+Added optional support for using zc.zservertracelog to generate trace logs.
+
0.1.0 (2011-12-11)
------------------
Modified: zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py
===================================================================
--- zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py 2012-01-17 20:53:10 UTC (rev 124067)
+++ zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py 2012-01-18 20:45:39 UTC (rev 124068)
@@ -17,7 +17,6 @@
import zc.zk
import zope.server.dualmodechannel
import zope.server.taskthreads
-import zope.server.http.wsgihttpserver
event_for_testing = threading.Event()
server_for_testing = None
@@ -45,16 +44,20 @@
def run(wsgi_app, global_conf,
zookeeper, path, session_timeout=None,
name=__name__, host='', port=0, threads=1, monitor_server=None,
+ zservertracelog=None,
):
port = int(port)
threads = int(threads)
task_dispatcher = zope.server.taskthreads.ThreadedTaskDispatcher()
task_dispatcher.setThreadCount(threads)
- server = zope.server.http.wsgihttpserver.WSGIHTTPServer(
- wsgi_app, name, host, port,
- task_dispatcher=task_dispatcher)
+ if zservertracelog == 'true':
+ from zc.zservertracelog.tracelog import Server
+ else:
+ from zope.server.http.wsgihttpserver import WSGIHTTPServer as Server
+ server = Server(wsgi_app, name, host, port, task_dispatcher=task_dispatcher)
+
props = {}
if monitor_server:
host, port = monitor_server.rsplit(':', 1)
Modified: zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py
===================================================================
--- zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py 2012-01-17 20:53:10 UTC (rev 124067)
+++ zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py 2012-01-18 20:45:39 UTC (rev 124068)
@@ -108,6 +108,8 @@
def test_suite():
checker = zope.testing.renormalizing.RENormalizing([
(re.compile('pid = \d+'), 'pid = 9999'),
+ (re.compile(r' \d+ \d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d+'),
+ ' IIIII DDDD-MM-DD HH:MM:SS.SS'),
])
suite = unittest.TestSuite((
manuel.testing.TestSuite(
More information about the checkins
mailing list