Skip to main content

cipher.logview

WSGI middleware that shows you log messages produced during request handling.

Wraps Dozer and adds a few features:

  • Pretty request timeline for functions decorated with @cipher.logview.timed.

  • Stack formatter shows the value of __traceback_info__ in each stack frame, if a local with that name exists (which is a convention used by zope.exceptions.exceptionformatter).

  • A monkey-patch for zope.browserpage's ViewPageTemplateFile that logs the names of page templates being rendered (enable with monkeypatch=True).

  • A monkey-patch for zope.app.publication's ZopePublication that logs the name of the view class that is being called, and also the representation of and interfaces provided by the content object (enable with monkeypatch=True).

Usage

Add cipher.logview.LogviewMiddleware in your WSGI pipeline.

For example, here’s an excerpt for a PasteDeploy-style paster.ini:

[filter-app:logview]
use = egg:cipher.logview
next = main
loglevel = DEBUG
keep_tracebacks = yes
monkeypatch = yes

# highlighting rules: logview.substring = css-color
logview.sql = #fee
logview.txn = #efe

# traceback highlighting rules: traceback.substring=css-color
traceback.dozer/ = #ddd
traceback.python2.7/ = #ccc
traceback.paste/ = #bbb
traceback.webob/ = #aaa
traceback.weberror/ = #999
traceback.zope/ = #888
traceback.z3c/ = #888
traceback.storm/ = #777
traceback.transaction/ = #666
traceback.ZODB/ = #555
traceback.keas/ = #444
traceback.cipher/ = #840

which lets you optionally enable the middleware from the command line

bin/paster serve paster.ini -n logview

Note: if you want to see debug messages – such as those produced by cipher.logview itself – you will need to make sure the logging level of the root logger is set to DEBUG. If you don’t want debug messages in your log files (and who does?), filter them out by setting the level of each handler. Example paster.ini:

[logging]
keys = root, ...

[logger_root]
handlers = stdout, logfile
level = DEBUG

[handlers]
keys = stdout, logfile, ...

[handler_stdout]
class = StreamHandler
args = (sys.stdout,)
level = INFO
formatter = ...

[handler_logfile]
class = logging.handlers.RotatingFileHandler
args = ('events.log', 'a', 10*1024*1024, 5)
level = INFO
formatter = ...

Changes

1.1.0 (2013-03-22)

  • Add support for Python 3.3.

  • Require Dozer 0.4.

  • No longer require Paste.

  • Cosmetic fix: add the missing closing parenthesis to the request timeline labels.

1.0.2 (2012-12-13)

  • Handle views that are methods (e.g. <browser:page class=”…” attribute=”…” />): show the class and method name, the correct source location of the method, and the context. Previously you’d see “Calling __builtin__.instancemethod - no source information available”.

  • Add cipher.logview.format_tb. Use it to format exception tracebacks (requires Dozer 0.3).

  • Add support for __traceback_supplement__ in format_stack/format_tb. This is used by Zope Page Templates to indicate the page template filename/line/column/expression.

1.0.1 (2012-12-07)

  • Handle dynamic subclasses created by <browser:page> and show the real class.

  • Bugfix: sometimes enumerating interfaces of the context could trigger a ForbiddenAttribute exception.

  • Mention logging levels gotcha in README.rst.

1.0.0 (2012-12-05)

  • First public release.

Release files for cipher.logview 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cipher.logview 1.1.0
File Size Uploaded
cipher.logview-1.1.0.zip 31.0 kB Details

Release files / cipher.logview-1.1.0.zip

Download URL cipher.logview-1.1.0.zip
Size 31.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d9725f9d861d3748a4a8bf6060696746977a974e4e3c986d9b9754ba744994a8
BLAKE2b-256 checksum
How to use checksums
285af8c6452b10296b3fa1cf209df6bdf673d89b76c6b852722f0dc809b2e468
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page