Skip to main content
Coveralls test coverage information Build Status

Eliot is a Python logging system designed not only for simple applications but for complex applications as well, including distributed systems. Eliot supports simple structured messages but can also record a causal chain of actions happening within and across process boundaries: a logical trace of the system’s operation.

Structured, action-oriented logging is a great help when debugging problems. For example, here are the combined logs of a request originating from a client process being sent to a server. Notice how easy it is to figure out the cause of the problem, even though it’s opaque to the client:

process='client' task_uuid='40be6df2' task_level=[1] action_type='main'
    action_status='started'

process='client' task_uuid='40be6df2' task_level=[2, 1] action_type='http_request'
    action_status='started' x=5 y=0

process='server' task_uuid='40be6df2' task_level=[2, 2, 1] action_type='eliot:remote_task'
    action_status='started'

process='server' task_uuid='40be6df2' task_level=[2, 2, 2, 1] action_type='divide'
    action_status='started' x=5 y=0

process='server' task_uuid='40be6df2' task_level=[2, 2, 2, 2] action_type='divide'
    action_status='failed' exception='exceptions.ZeroDivisionError' reason='integer division or modulo by zero'

process='server' task_uuid='40be6df2' task_level=[2, 2, 3] action_type='eliot:remote_task'
    action_status='failed' exception='exceptions.ZeroDivisionError' reason='integer division or modulo by zero'

process='client' task_uuid='40be6df2' task_level=[2, 3] action_type='http_request'
   action_status='failed' exception='requests.exception.HTTPError' reason='500 Server Error: INTERNAL SERVER ERROR'

process='client' task_uuid='40be6df2' task_level=[3] action_type='main'
   action_status='failed' exception='requests.exception.HTTPError' reason='500 Server Error: INTERNAL SERVER ERROR'

Features:

  • Structured, typed log messages.

  • Ability to log actions, not just point-in-time information: log messages become a trace of program execution.

  • Logged actions can span processes and threads.

  • Excellent support for unit testing your code’s logging.

  • 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, 3.4 and PyPy.

  • Eliot APIs provide both PEP 8 style (e.g. write_traceback()) and Twisted (e.g. writeTraceback()) method and function names. The only exceptions are pyunit-style assertions (e.g. assertContainsFields()) and Twisted-specific APIs since both use camelCase by default.

Eliot is released by ClusterHQ under the Apache 2.0 License.

To install:

$ pip install eliot

Downloads are available on PyPI.

Documentation can be found on Read The Docs.

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

You can ask for help on IRC at the #eliot channel on irc.freenode.net.

Metadata

Release files for eliot 0.6.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 eliot 0.6.0
File Size Uploaded
eliot-0.6.0.tar.gz 86.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eliot 0.6.0
File Interpreter ABI Platform
eliot-0.6.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 147.4 kB

Release files / eliot-0.6.0.tar.gz

Download URL eliot-0.6.0.tar.gz
Size 86.1 kB
Tags Source
SHA-256 checksum
How to use checksums
83b09c5f98829da34671bf3161f94e174325d67eb4110eb6f797674a84ff589f
BLAKE2b-256 checksum
How to use checksums
3821cec2b7718c73150a01be76b568171b96f3f8c1c657ad117af81a281c2e45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / eliot-0.6.0-py2.py3-none-any.whl

Download URL eliot-0.6.0-py2.py3-none-any.whl
Size 61.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
16041a08e2e045c5a4a46cd0838d47873fe2d435e1422fd01c5cb2e15a9c7e2c
BLAKE2b-256 checksum
How to use checksums
ae0681e2bd594f508cfb4bd81023ae7aaf0713097d3f1e7105887717b2a64e75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.17.5

2 release files

1.16.0

2 release files

1.15.0

1 release file

1.14.0

2 release files

1.13.0

2 release files

1.12.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

1 release file

0.3.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