Disable request logging to console in flask

Viewed 2652

I tried everything in here: Disable console messages in Flask server but the only thing I was able to do it disable the *starting server thing.

I found what seems like its functions in the werkzeug module in the Serving.py:

def log_request(self, code='-', size='-'):
    msg = self.requestline
    code = str(code)

    if termcolor:
        color = termcolor.colored

        if code[0] == '1':    # 1xx - Informational
            msg = color(msg, attrs=['bold'])
        elif code[0] == '2':    # 2xx - Success
            msg = color(msg, color='white')
        elif code == '304':   # 304 - Resource Not Modified
            msg = color(msg, color='cyan')
        elif code[0] == '3':  # 3xx - Redirection
            msg = color(msg, color='green')
        elif code == '404':   # 404 - Resource Not Found
            msg = color(msg, color='yellow')
        elif code[0] == '4':  # 4xx - Client Error
            msg = color(msg, color='red', attrs=['bold'])
        else:                 # 5xx, or any other response
            msg = color(msg, color='magenta', attrs=['bold'])

    self.log('info', '"%s" %s %s', msg, code, size)


def log(self, type, message, *args):
    _log(type, '%s - - [%s] %s\n' % (self.address_string(),
                                     self.log_date_time_string(),
                                     message % args))

But even when putting pass in all these functions instead of the code, it printed them to the console. I'm really clueless. Does anyone have a working solution for this?

1 Answers
import flask.cli    
flask.cli.show_server_banner = lambda *args: None

import logging
logging.getLogger("werkzeug").disabled = True
Related