def build_app_loggers(log_level, apps, handlers=None):
    """ Return a logger dict for app packages with the given log level and no
    propogation since the apps list is parsed/normalized to be the set of top-
    level apps.  The optional handlers argument is provided so that this pattern
    of app loggers can be used independently of the configure_logger method
    below, if desired.
    """

    # Use 'default' handler provided by DEFAULT_LOGGING config if
    # not supplied.
    if handlers is None:
        handlers = ['default']

    # The log config expects the handlers value to be a list, so let's
    # make sure of that here.
    if not isinstance(handlers, list):
        handlers = list(handlers)

    app_loggers = {}
    for app in apps:
        app_loggers[app] = {
            'level': log_level,
            'handlers': handlers,
            'propagate': False,
        }

    return app_loggers
def build_app_loggers ( log_level , apps , handlers = None ) : if handlers is None : handlers = [ 'default' ] if not isinstance ( handlers , list ) : handlers = list ( handlers ) app_loggers = { } for app in apps : app_loggers [ app ] = { 'level' : log_level , 'handlers' : handlers , 'propagate' : False , } return app_loggers
Return a logger dict for app packages with the given log level and no
    propogation since the apps list is parsed/normalized to be the set of top-
    level apps.  The optional handlers argument is provided so that this pattern
    of app loggers can be used independently of the configure_logger method
    below, if desired.