This implementation grabs a lock, so that only one thread may update the log level of any
logger at a time, in order to allow readers to never block (though there is a window where retrieving the
log level reflects an older effective level than the actual level).