Hi,
for the following code and config file,
the logger works correctly before funcion ‘logging.config.fileConfig’.
After logging.config.fileConfig, logger.disabled is set to True which leads to logger doesn’t print anything.
My question is:
why is logger.disabled set to True by logging.config.fileConfig?
def init_logging(log_file_name):
root_logger = logging.getLogger('aaABC')
root_logger.setLevel(logging.INFO)
formatter = logging.Formatter("%(message)s")
file_handler = logging.FileHandler(log_file_name)
file_handler.setLevel(logging.INFO)
root_logger.addHandler(file_handler)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
root_logger.addHandler(console_handler)
return root_logger
if __name__ == '__main__':
output_dir = 'output'
logging_conf_file = 'logging_2.conf'
filename = 'log_{}.txt'.format(datetime.now().strftime('%Y%m%d_%H%M%S'))
log_file_path = os.path.join(output_dir, filename)
logger = init_logging(log_file_path)
logger.info('2')
logging.config.fileConfig(logging_conf_file)
logger.info('3')
logging.info('9')
**logging_2.conf**:
[loggers]
keys=root,ABC
[handlers]
keys=consoleHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_ABC]
level=DEBUG
handlers=consoleHandler
qualname=ABC
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=