Skip to main content

Custom log levels

Defined in log_levels.py as the LogLevels enum and registered globally by configure_logging():

MethodValueUse case (from source comments)
logger.loop()3Logs inside hot loops; debugging only
logger.trace()5Low-level tracing for deep debugging
logger.debug()10Detailed information for devs
logger.info()20General program information
logger.success()22Something worked
logger.api()25API call/response logging
logger.warning()30Unexpected but not necessarily an error
logger.error()40Something went wrong

There is no CRITICAL entry in the enum. The ALL member maps to NOTSET (0) for third-party library noise.

A log_test_messages(logger) helper in log_test_messages.py emits one message at every level plus timed loop/trace pairs, for eyeballing the formatter output.