[Flask] How to wrest complete control of log output location from Flask?
Scott Werner
scott.werner.vt at gmail.com
Sun May 14 13:30:29 EDT 2017
I use the following to clear and set my own log handlers in my flask app:
def configure_logging(app):
loggers = ['', 'flask', 'werkzeug']
level = logging.DEBUG if app.config['DEBUG'] else logging.INFO
handlers = []
# Color handler
color_format = '%(log_color)s%(asctime)s - %(levelname)s - %(name)s -
%(message)s'
color_handler = colorlog.StreamHandler()
color_handler.setFormatter(colorlog.ColoredFormatter(color_format))
handlers.append(color_handler)
# Configure each logger
for logger in loggers:
named_logger = logging.getLogger(logger)
named_logger.setLevel(level)
named_logger.handlers = [] # clear existing handlers
for handler in handlers:
named_logger.addHandler(handler)
On Fri, May 12, 2017 at 12:04 PM, Gergely Polonkai <gergely at polonkai.eu>
wrote:
> Take a look at Flask-Logging-Extras, which does exactly that, but without
> overriding Flask methods:
>
> https://pypi.python.org/pypi/Flask-Logging-Extras
>
> You may or may not like its functionality, but looking at its source code
> will answer your question.
>
> On Fri, May 12, 2017, 16:58 Skip Montanaro <skip.montanaro at gmail.com>
> wrote:
>
>> In my Flask subclass, I override run() and set up self.logger just the
>> way I want it:
>>
>> class FlaskApp(Flask):
>> def run(self, ..., logfile):
>> ...
>> handler = FileHandler(logfile)
>> handler.setFormatter(Formatter(...))
>> self.logger.handlers = [handler]
>> ...
>> super(FlaskApp, self).run(...)
>>
>> I guess in Flask.run it tacks on a StreamHandler instance, because all
>> my logging goes to my file, but the traditional web server log lines
>> still go to stdout or stderr. How do I make it stop that? I want
>> everything to go to the file I define.
>>
>> Thx,
>>
>> Skip Montanaro
>> _______________________________________________
>> Flask mailing list
>> Flask at python.org
>> https://mail.python.org/mailman/listinfo/flask
>>
>
> _______________________________________________
> Flask mailing list
> Flask at python.org
> https://mail.python.org/mailman/listinfo/flask
>
>
--
Scott Werner
scott.werner.vt at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/flask/attachments/20170514/bc5f92d2/attachment.html>
More information about the Flask
mailing list