<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body style='font-family: Verdana,Geneva,sans-serif'>
<p>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.</p>
<div class="moz-forward-container">
<p>Here’s what your logs might look like before using Eliot:</p>
<div class="highlight-python">
<pre style="padding-left: 30px;">Going to validate <a class="moz-txt-link-freetext" href="http://example.com/index.html">http://example.com/index.html</a>.
Started download attempted.
Download succeeded!
Missing <title> element in "/html/body".
Bad HTML entity in "/html/body/p[2]".
2 validation errors found!</pre>
</div>
<p>After switching to Eliot you’ll get a tree of messages with both message contents and causal relationships encoded in a structured format:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">{"action_type":</span> <span class="pre">"validate_page",</span> <span class="pre">"action_status":</span> <span class="pre">"started",</span> <span class="pre">"url":</span> <span class="pre"><a class="moz-txt-link-rfc2396E" href="http://example.com/index.html">"http://example.com/index.html"</a>}</span></tt>
<ul>
<li><tt class="docutils literal"><span class="pre">{"action_type":</span> <span class="pre">"download",</span> <span class="pre">"action_status":</span> <span class="pre">"started"}</span></tt></li>
<li><tt class="docutils literal"><span class="pre">{"action_type":</span> <span class="pre">"download",</span> <span class="pre">"action_status":</span> <span class="pre">"succeeded"}</span></tt></li>
<li><tt class="docutils literal"><span class="pre">{"action_type":</span> <span class="pre">"validate_html",</span> <span class="pre">"action_status":</span> <span class="pre">"started"}</span></tt>
<ul>
<li><tt class="docutils literal"><span class="pre">{"message_type":</span> <span class="pre">"validation_error",</span> <span class="pre">"error_type":</span> <span class="pre">"missing_title",</span> <span class="pre">"xpath":</span> <span class="pre">"/html/head"}</span></tt></li>
<li><tt class="docutils literal"><span class="pre">{"message_type":</span> <span class="pre">"validation_error",</span> <span class="pre">"error_type":</span> <span class="pre">"bad_entity",</span> <span class="pre">"xpath":</span> <span class="pre">"/html/body/p[2]"}</span></tt></li>
</ul>
</li>
<li><tt class="docutils literal"><span class="pre">{"action_type":</span> <span class="pre">"validate_html",</span> <span class="pre">"action_status":</span> <span class="pre">"failed",</span> <span class="pre">"exception":</span> <span class="pre">"validator.ValidationFailed"}</span></tt></li>
</ul>
</li>
<li><tt class="docutils literal"><span class="pre">{"action_type":</span> <span class="pre">"validate_page",</span> <span class="pre">"action_status":</span> <span class="pre">"failed",</span> <span class="pre">"exception":</span> <span class="pre">"validator.ValidationFailed"}</span></tt></li>
</ul>
<p>Features:</p>
<ul class="simple">
<li>Structured, typed log messages.</li>
<li>Ability to log actions, not just point-in-time information: log messages become a trace of program execution.</li>
<li>Excellent support for unit testing your logging code.</li>
<li>Emphasis on performance, including no blocking I/O in logging code path.</li>
<li>Optional Twisted support.</li>
<li>Designed for JSON output, usable by Logstash/Elasticsearch.</li>
<li>Supports CPython 2.7, 3.3 and PyPy.</li>
</ul>
<p>Eliot is released by <a class="reference external" href="https://hybridcluster.github.io">HybridCluster</a> under the Apache 2.0 License.</p>
<p>To install:</p>
<div class="highlight-python">
<pre>$ pip install eliot</pre>
</div>
<p>Downloads are available on <a class="reference external" href="https://pypi.python.org/pypi/eliot">PyPI</a>.</p>
<p>Documentation can be found on <a class="reference external" href="https://eliot.readthedocs.org/">Read The Docs</a>.</p>
<p>Bugs and feature requests should be filed at the project <a class="reference external" href="https://github.com/hybridcluster/eliot">Github page</a>.</p>
</div>
<p> </p>
<div> </div>
</body></html>