Indeed, logging.basicConfig
does nothing if a handler has been set up already:
This function does nothing if the root logger already has handlers configured, unless the keyword argument force is set to True.
You’ll need to either add force=True
(requires Python 3.8 or newer), or, alternatively, replace the current handler on the root logger:
import logging
fileh = logging.FileHandler('/tmp/logfile', 'a')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fileh.setFormatter(formatter)
log = logging.getLogger() # root logger
for hdlr in log.handlers[:]: # remove all old handlers
log.removeHandler(hdlr)
log.addHandler(fileh) # set the new handler
See the Configuring Logging chapter in the Python Logging HOWTO.