[Twisted-Python] ANN: Eliot: a framework for Logging as Storytelling

Itamar Turner-Trauring itamar at itamarst.org
Fri May 16 08:49:18 MDT 2014


 

Eliot provides a structured logging and tracing system for Python that
generates log messages describing a forest of nested actions. Actions
start and eventually finish, successfully or not. Log messages thus tell
a story: what happened and what caused it. 

Here's what your logs might look like before using Eliot: 

Going to validate http://example.com/index.html [1].
Started download attempted.
Download succeeded!
Missing <title> element in "/html/body".
Bad HTML entity in "/html/body/p[2]".
2 validation errors found!

After switching to Eliot you'll get a tree of messages with both message
contents and causal relationships encoded in a structured format: 

	* {"action_type": "validate_page", "action_status": "started", "url":
"http://example.com/index.html" [1]} 

 	* {"action_type": "download", "action_status": "started"}
 	* {"action_type": "download", "action_status": "succeeded"}

	* {"action_type": "validate_html", "action_status": "started"} 

 	* {"message_type": "validation_error", "error_type": "missing_title",
"xpath": "/html/head"}
 	* {"message_type": "validation_error", "error_type": "bad_entity",
"xpath": "/html/body/p[2]"}

 	* {"action_type": "validate_html", "action_status": "failed",
"exception": "validator.ValidationFailed"}

 	* {"action_type": "validate_page", "action_status": "failed",
"exception": "validator.ValidationFailed"}

Features: 

 	* Structured, typed log messages.
 	* Ability to log actions, not just point-in-time information: log
messages become a trace of program execution.
 	* Excellent support for unit testing your logging code.
 	* Emphasis on performance, including no blocking I/O in logging code
path.
 	* Optional Twisted support.
 	* Designed for JSON output, usable by Logstash/Elasticsearch.
 	* Supports CPython 2.7, 3.3 and PyPy.

Eliot is released by HybridCluster [2] under the Apache 2.0 License. 

To install: 

$ pip install eliot

Downloads are available on PyPI [3]. 

Documentation can be found on Read The Docs [4]. 

Bugs and feature requests should be filed at the project Github page
[5]. 

 

Links:
------
[1] http://example.com/index.html
[2] https://hybridcluster.github.io
[3] https://pypi.python.org/pypi/eliot
[4] https://eliot.readthedocs.org/
[5] https://github.com/hybridcluster/eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://twistedmatrix.com/pipermail/twisted-python/attachments/20140516/39677344/attachment.html>


More information about the Twisted-Python mailing list