{ "info": { "author": "CipherHealth LLC", "author_email": "dev@cipherhealth.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Zope3", "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Topic :: Internet :: WWW/HTTP" ], "description": "cipher.logview\n==============\n\nWSGI middleware that shows you log messages produced during request handling.\n\nWraps Dozer_ and adds a few features:\n\n- Pretty request timeline for functions decorated with\n ``@cipher.logview.timed``.\n\n- Stack formatter shows the value of ``__traceback_info__`` in each stack\n frame, if a local with that name exists (which is a convention used by\n `zope.exceptions`_\\.exceptionformatter).\n\n- A monkey-patch for `zope.browserpage`_\\'s ViewPageTemplateFile that logs the\n names of page templates being rendered (enable with ``monkeypatch=True``).\n\n- A monkey-patch for `zope.app.publication`_\\'s ZopePublication that logs the\n name of the view class that is being called, and also the representation of\n and interfaces provided by the content object (enable with\n ``monkeypatch=True``).\n\n\nUsage\n-----\n\nAdd ``cipher.logview.LogviewMiddleware`` in your WSGI pipeline.\n\nFor example, here's an excerpt for a PasteDeploy_-style paster.ini::\n\n [filter-app:logview]\n use = egg:cipher.logview\n next = main\n loglevel = DEBUG\n keep_tracebacks = yes\n monkeypatch = yes\n\n # highlighting rules: logview.substring = css-color\n logview.sql = #fee\n logview.txn = #efe\n\n # traceback highlighting rules: traceback.substring=css-color\n traceback.dozer/ = #ddd\n traceback.python2.7/ = #ccc\n traceback.paste/ = #bbb\n traceback.webob/ = #aaa\n traceback.weberror/ = #999\n traceback.zope/ = #888\n traceback.z3c/ = #888\n traceback.storm/ = #777\n traceback.transaction/ = #666\n traceback.ZODB/ = #555\n traceback.keas/ = #444\n traceback.cipher/ = #840\n\nwhich lets you optionally enable the middleware from the command line ::\n\n bin/paster serve paster.ini -n logview\n\nNote: if you want to see debug messages -- such as those produced by\ncipher.logview itself -- you will need to make sure the logging level of\nthe root logger is set to DEBUG. If you don't want debug messages in\nyour log files (and who does?), filter them out by setting the level of\neach handler. Example paster.ini::\n\n [logging]\n keys = root, ...\n\n [logger_root]\n handlers = stdout, logfile\n level = DEBUG\n\n [handlers]\n keys = stdout, logfile, ...\n\n [handler_stdout]\n class = StreamHandler\n args = (sys.stdout,)\n level = INFO\n formatter = ...\n\n [handler_logfile]\n class = logging.handlers.RotatingFileHandler\n args = ('events.log', 'a', 10*1024*1024, 5)\n level = INFO\n formatter = ...\n\n\n.. Links\n\n.. _Dozer: http://pypi.python.org/pypi/Dozer\n.. _PasteDeploy: http://pypi.python.org/pypi/PasteDeploy\n.. _zope.exceptions: http://pypi.python.org/pypi/zope.exceptions\n.. _zope.browserpage: http://pypi.python.org/pypi/zope.browserpage\n.. _zope.app.publication: http://pypi.python.org/pypi/zope.app.publication\n\n\nChanges\n=======\n\n1.1.0 (2013-03-22)\n------------------\n\n- Add support for Python 3.3.\n\n- Require Dozer 0.4.\n\n- No longer require Paste.\n\n- Cosmetic fix: add the missing closing parenthesis to the request timeline\n labels.\n\n\n1.0.2 (2012-12-13)\n------------------\n\n- Handle views that are methods (e.g. ): show the class and method name, the correct source\n location of the method, and the context. Previously you'd see\n \"Calling __builtin__.instancemethod - no source information available\".\n\n- Add cipher.logview.format_tb. Use it to format exception tracebacks\n (requires Dozer 0.3).\n\n- Add support for __traceback_supplement__ in format_stack/format_tb.\n This is used by Zope Page Templates to indicate the page template\n filename/line/column/expression.\n\n\n1.0.1 (2012-12-07)\n------------------\n\n- Handle dynamic subclasses created by and show the real class.\n\n- Bugfix: sometimes enumerating interfaces of the context could trigger a\n ForbiddenAttribute exception.\n\n- Mention logging levels gotcha in README.rst.\n\n\n1.0.0 (2012-12-05)\n------------------\n\n- First public release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CipherHealth/cipher.logview", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "cipher.logview", "package_url": "https://pypi.org/project/cipher.logview/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cipher.logview/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/CipherHealth/cipher.logview" }, "release_url": "https://pypi.org/project/cipher.logview/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "WSGI middleware that shows you log messages produced during request handling.", "version": "1.1.0" }, "last_serial": 787412, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0f76c16cc2429456c8255be1a16d9ba8", "sha256": "f0b126bc846802e1a9e5f7c7a4a2ae29d3b49e167a4a42f7108817afaf93d386" }, "downloads": -1, "filename": "cipher.logview-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0f76c16cc2429456c8255be1a16d9ba8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17589, "upload_time": "2012-12-05T17:59:12", "url": "https://files.pythonhosted.org/packages/31/ca/6661f85a0c28926c73dc962719df0ebeab92e7556646284cf651c0f32e39/cipher.logview-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "eb5a42c762b5f7554d7370b786483940", "sha256": "3d23a415e6efe51fcd10b179916d740e611971bca188e2d9bbacd7aae16b301c" }, "downloads": -1, "filename": "cipher.logview-1.0.1.tar.gz", "has_sig": false, "md5_digest": "eb5a42c762b5f7554d7370b786483940", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18689, "upload_time": "2012-12-07T17:30:55", "url": "https://files.pythonhosted.org/packages/d4/af/69250ab7d44ab91817d25b2f05678dfa83c94034fd2cc438eaa4b3ad219d/cipher.logview-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "550d07ee440cdf3affcd61c21272c270", "sha256": "18c3867da09f3b841cad9e92ff74bedebb5d200af17771ff8985f5b3264e86f9" }, "downloads": -1, "filename": "cipher.logview-1.0.2.tar.gz", "has_sig": false, "md5_digest": "550d07ee440cdf3affcd61c21272c270", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19678, "upload_time": "2012-12-13T16:07:13", "url": "https://files.pythonhosted.org/packages/0c/85/572e8e13197165f90609ba6aaa7b21e09d8abc99b0c88314f2d8a7b74443/cipher.logview-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "288c76f480408c92b311af746b570da3", "sha256": "d9725f9d861d3748a4a8bf6060696746977a974e4e3c986d9b9754ba744994a8" }, "downloads": -1, "filename": "cipher.logview-1.1.0.zip", "has_sig": false, "md5_digest": "288c76f480408c92b311af746b570da3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31039, "upload_time": "2013-03-22T07:45:28", "url": "https://files.pythonhosted.org/packages/28/5a/f8c6452b10296b3fa1cf209df6bdf673d89b76c6b852722f0dc809b2e468/cipher.logview-1.1.0.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "288c76f480408c92b311af746b570da3", "sha256": "d9725f9d861d3748a4a8bf6060696746977a974e4e3c986d9b9754ba744994a8" }, "downloads": -1, "filename": "cipher.logview-1.1.0.zip", "has_sig": false, "md5_digest": "288c76f480408c92b311af746b570da3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31039, "upload_time": "2013-03-22T07:45:28", "url": "https://files.pythonhosted.org/packages/28/5a/f8c6452b10296b3fa1cf209df6bdf673d89b76c6b852722f0dc809b2e468/cipher.logview-1.1.0.zip" } ] }