[Twisted-Python] ANN: Eliot 0.8, the logging system with causality

Most logging systems can tell you what happened; Eliot tells you _why_ it happened: $ python linkcheck.py | eliot-tree 4c42a789-76f5-4f0b-b154-3dd0e3041445 +-- check_links@1/started `-- urls: [u'http://google.com', u'http://nosuchurl'] +-- download@2,1/started `-- url: http://google.com +-- download@2,2/succeeded +-- download@3,1/started `-- url: http://nosuchurl +-- download@3,2/failed |-- exception: requests.exceptions.ConnectionError |-- reason: ('Conn aborted', gaierror(-2, 'Name unknown')) +-- check_links@4/failed |-- exception: exceptions.ValueError |-- reason: ('Conn aborted.', gaierror(-2, 'Name unknown')) And here's the code that generated these logs (eliot-tree [1] was used to render the output): import sys from eliot import start_action, to_file import requests to_file(sys.stdout) def check_links(urls): with start_action(action_type="check_links", urls=urls): for url in urls: try: with start_action(action_type="download", url=url): response = requests.get(url) response.raise_for_status() except Exception as e: raise ValueError(str(e)) check_links(["http://google.com"], ["http://nosuchurl"]) Interested? Read more at https://eliot.readthedocs.org/ [2]. Eliot is released under the Apache License 2 by ClusterHQ [3], the Container Data People. We're hiring! [4] Links: ------ [1] https://warehouse.python.org/project/eliot-tree/ [2] https://eliot.readthedocs.org/ [3] https://clusterhq.com [4] https://clusterhq.com/careers/
participants (1)
-
Itamar Turner-Trauring