Eliot
stable
Quickstart
Why Eliot?
What’s New
Generating Logs
Actions and Tasks
Messages
Errors and Exceptions
Log Levels
Integrating and Migrating Existing Logging
Spanning Processes and Threads
Unit Testing Your Logging
Using Types to Structure Messages and Actions
Asyncio/Trio Coroutine Support
Using Eliot with Twisted
Outputting Logs
Reading Logs
Scientific Computing with Eliot
Python 2.7 Support
Contributing to Eliot
Eliot
Docs
»
Generating Logs
Edit on GitHub
Generating Logs
¶
Actions and Tasks
Actions: A Start and a Finish
Logging Actions
Logging Functions
Tasks: Top-level Actions
From Actions to Messages
Action Fields
Using Generators
Non-Finishing Contexts
Getting the Current Action
Messages
When you have an action
If you don’t have an action
Errors and Exceptions
Exceptions and Tracebacks
Custom Exception Logging
Log Levels
Generating messages with log levels
Choosing log levels
Integrating and Migrating Existing Logging
Route existing logs to Eliot
Add actions at entry points and other key points
Spanning Processes and Threads
Introduction
Cross-Thread Tasks
Cross-Process Tasks
Cross-Thread Tasks
Ensuring Message Uniqueness
Logging Output for Multiple Processes
Unit Testing Your Logging
Linting your logs
Making assertions about the logs
Testing Tracebacks
Testing Message and Action Structure
Custom JSON encoding
Custom testing setup
Using Types to Structure Messages and Actions
Why Typing?
Fields
Message Types
Action Types
Serialization Errors
Testing
Asyncio/Trio Coroutine Support
Asyncio
Trio
Using Eliot with Twisted
Non-blocking Destinations
twisted.logger
integration
Trial Integration
Logging Failures
Actions and inlineCallbacks
Actions and Deferreds