All logging proc's (log(), logf(), info(), infof() and so on) rely on the relevant logger to be set as context logger (rather than a specific parameter).
In the (I think relatively frequent) case of a single, application-wide logger, this requires the logger to be assigned to context in main(). Still, logging setup is an obvious candidate for a sub-proc (possibly even a sub-sub-proc: main() calls init_app() calls init_log()): so, the set logger needs to be 'bubbled up' up to main() and set to context there.
But, within init_app() or init_log() themselves some logging may be needed: so, the logger has to be assigned to context in each of them. Not to mention the context juggling when different loggers are required.
Would it not make sense to add calls like log_l(logger: log.Logger, [go on as for log()] ) in which the logger is explicitly provided as a parameter (or something along these lines)?