Disable HTTP logs in apps platform

Posted February 18, 2021 132 views
PythonDigitalOcean App PlatformFlask

I have a flask application running in gunicorn in the app platform.
Run command:

gunicorn --config --worker-tmp-dir /dev/shm --log-level error wsgi:app

bind = ''
workers = 2
worker_class = 'gevent'
worker_connections = 1000

flask init:

if logging.getLogger('gunicorn.error').handlers:

But the logs contain http requests:

app-name | 2021-02-18 19:28:13 - - [18/Feb/2021:17:28:13 +0000] "POST /route HTTP/1.1" 200 322 "-" "Apache-HttpClient/4.5.7 (Java/1.8.0_212)"

I want the logs to contain only errors and the messages that I send myself:'some log message')

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

1 answer

The log messages you’ve referenced aren’t generated by App Platform. I suspect they’re being emitted by either gunicorn or flask. In gunicorn I believe you can disable the access log by setting accesslog = False.

  • accesslog sets the source to where the access logs will route and should be a string. I tried redirecting this to a file:

    accesslog = 'gunicorn.log'

    Then I changed the configuration of the logger:

        format='[%(asctime)s] [%(process)d] [%(levelname)s]: %(message)s'
    logging.getLogger('werkzeug').disabled = True

    This works locally as needed, including with gunicorn, but it does not work in digitalocean. The HTTP logs are still here.

Submit an Answer