Logger flow
Create
LogRecord
Logging call in user
code, e.g.
logger.info(...)
Stop
Does a filter attached
to logger reject the
record?
Pass record to
handlers of
current logger
Is propagate true for
current logger?
Is there a parent
logger?
Set current
logger to parent
At least one handler
in hierarchy?
Use
lastResort
handler
Handler enabled for
level of record?
Does a filter attached
to handler reject the
record?
Stop
Emit (includes formatting)
Handler flow
Logger enabled for
level of call?
No
Yes
Yes
No
No
Yes
Yes
No
No
Yes
No
Yes
No
Yes
Record passed
to handler