<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->

# Type of request: This is a ...

[X] bug report
[ ] feature request

# Detailed description

Running localstack in a Docker (v19.03.8) container on macOS 10.15.6, some log output lines appears in triplicate. It appears that the messages, such as access log entries, are generated by Flask. The lines only appear if **DEBUG** is set in the environment; if **DEBUG** is not set, no access log messages appear, but if **DEBUG** is set, they appear three times each.

This is certainly not keeping me from getting things done -- it's just a little confusing when troubleshooting calls into localstack. Thank you in advance for this amazing project and any help you can offer!

## Expected behavior

One line of log output per event, such as an access log line.

## Actual behavior

Three identical copies of each log line are generated.

# Steps to reproduce

## Command used to start LocalStack

    docker run -it -p 4566:4566 -e DEBUG=1 -e SERVICES=s3 localstack/localstack


## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)

    awslocal s3 mb s3://stuff

## Console output
    ...
    Running on 0.0.0.0:4566 over https (CTRL + C to quit)
    2020-07-27T21:09:38:INFO:localstack.multiserver: Starting multi API server process on port 40641
    Running on 0.0.0.0:4572 over http (CTRL + C to quit)
    Running on 0.0.0.0:40641 over http (CTRL + C to quit)
    2020-07-27 21:09:39,891:API:  * Running on http://0.0.0.0:46165/ (Press CTRL+C to quit)
    2020-07-27 21:09:39,891:API:  * Running on http://0.0.0.0:46165/ (Press CTRL+C to quit)
    2020-07-27 21:09:39,891:API:  * Running on http://0.0.0.0:46165/ (Press CTRL+C to quit)
    ...  
    2020-07-27 21:09:48,942:API: 127.0.0.1 - - [27/Jul/2020 21:09:48] "PUT /stuff HTTP/1.1" 200 -
    2020-07-27 21:09:48,942:API: 127.0.0.1 - - [27/Jul/2020 21:09:48] "PUT /stuff HTTP/1.1" 200 -
    2020-07-27 21:09:48,942:API: 127.0.0.1 - - [27/Jul/2020 21:09:48] "PUT /stuff HTTP/1.1" 200 -
if hasattr(pip_mod, 'main'):
        return pip_mod.main(args)
    import pip._internal
    if hasattr(pip._internal, 'main'):
        return pip._internal.main(args)
    import pip._internal.main
    return pip._internal.main.main(args)
def load_plugin_from_path(file_path, scope=None):
    if os.path.exists(file_path):
        module = re.sub(r'(^|.+/)([^/]+)/plugins.py', r'\2', file_path)
        method_name = 'register_localstack_plugins'
        scope = scope or PLUGIN_SCOPE_SERVICES
        if scope == PLUGIN_SCOPE_COMMANDS:
            method_name = 'register_localstack_commands'
        try:
            namespace = {}
            exec('from %s.plugins import %s' % (module, method_name), namespace)
            method_to_execute = namespace[method_name]
        except Exception as e:
            if (not re.match(r'.*cannot import name .*%s.*' % method_name, str(e)) and
                    ('No module named' not in str(e))):
                LOG.debug('Unable to load plugins from module %s: %s' % (module, e))
            return
        try:
            LOG.debug('Loading plugins - scope "%s", module "%s": %s' % (scope, module, method_to_execute))
            return method_to_execute()
        except Exception as e:
            if not os.environ.get(ENV_SCRIPT_STARTING_DOCKER):
                LOG.warning('Unable to load plugins from file %s: %s' % (file_path, e))
def load_plugins(scope=None):