Using _eric's ForwardingLogger, wrap the stdlib Logger to add originating class name. Also, keep a registry, etc. ad-hoc ftw!
event and async blocks were previously mixed in with a bunch of other common code, and shared a Monitor with other unrelated functionality. This code has been gently refactored into its own self-contained class (with its own task-specific lock), which should help with maintenance. Also includes a cleanup of the assert_*_keys methods into one method that checks both required and supported options.
…intValue reported by bnagy on IRC