Comment puis-je changer le format d'un Python message de journal sur un enregistreur de base?

Après la lecture de la documentation sur journalisation, je sais que je peux utiliser ce code pour effectuer la journalisation simple:

import logging

def main():
    logging.basicConfig(filename="messages.log",
                        level=logging.WARNING,
                        format='%(filename)s: '    
                                '%(levelname)s: '
                                '%(funcName)s(): '
                                '%(lineno)d:\t'
                                '%(message)s')

    logging.debug("Only for debug purposes\n")
    logging.shutdown()

main()

Cependant, j'ai réalisé que je ne sais pas comment changer le format des messages de journal sur un enregistreur de base, depuis basicConfig est un module de fonction de niveau. Ce code fonctionne pour la création de différents enregistreurs de niveaux différents, des noms, etc. mais est-il un moyen de changer le format de ces messages de log sur un par-enregistreur de base, d'une manière similaire à basicConfig?

import inspect
import logging

def function_logger(level=logging.DEBUG):
    function_name = inspect.stack()[1][3]
    logger = logging.getLogger(function_name)
    logger.setLevel(level)
    logger.addHandler(logging.FileHandler("{0}.log".format(function_name)))
    return logger

def f1():
    f1_logger = function_logger()
    f1_logger.debug("f1 Debug message")
    f1_logger.warning("f1 Warning message")
    f1_logger.critical("f1 Critical message")

def f2():
    f2_logger = function_logger(logging.WARNING)
    f2_logger.debug("f2 Debug message")
    f2_logger.warning("f2 Warning message")
    f2_logger.critical("f2 Critical message")

def main():
    f1()
    f2()
    logging.shutdown()

main()