[formatters] keys: detailed,simple,unadorned,state [handlers] keys: simple_console,detailed_console,unadorned_console,simple_console_warnings_only [loggers] keys: root,build,state,mock [formatter_state] format: %(asctime)s - %(message)s [formatter_unadorned] format: %(message)s [formatter_simple] format: %(levelname)s: %(message)s ;useful for debugging: [formatter_detailed] format: %(levelname)s %(filename)s:%(lineno)d: %(message)s [handler_unadorned_console] class: StreamHandler args: [] formatter: unadorned level: INFO [handler_simple_console] class: StreamHandler args: [] formatter: simple level: INFO [handler_simple_console_warnings_only] class: StreamHandler args: [] formatter: simple level: WARNING [handler_detailed_console] class: StreamHandler args: [] formatter: detailed level: WARNING ; usually dont want to set a level for loggers ; this way all handlers get all messages, and messages can be filtered ; at the handler level ; ; all these loggers default to a console output handler ; [logger_root] level: NOTSET handlers: simple_console ; mock logger normally has no output ; catches stuff like mock.trace_decorator and mock.util ; dont normally want to propagate to root logger, either [logger_mock] level: NOTSET handlers: qualname: mock propagate: 1 [logger_state] level: NOTSET ; unadorned_console only outputs INFO or above handlers: unadorned_console qualname: mock.Root.state propagate: 0 [logger_build] level: NOTSET handlers: simple_console_warnings_only qualname: mock.Root.build propagate: 0 ; the following is a list mock logger qualnames used within the code: ; ; qualname: mock.util ; qualname: mock.uid ; qualname: mock.trace_decorator