Flask Series: Error Management

Logging is used to collect and store valuable information about the application’s execution, that can be used for troubleshooting purposes. Logging includes either storing data to log files, sending it to monitoring services, Windows event logs, Unix syslogs, etc.. Information, being stored and / or sent, can be text messages, call stacks, everything application and environment related, which can be used later on for debugging.

One of the most common approaches used is to log in files. Below you could have a look at the logging configuration and how to use it within a Flask application:

More logging handlers that can be used are:
– RotatingFileHandler;
– NTEventLogHandler;
– SysLogHandler;

You could control the logging data format as well, helpful information how to achieve this goal can be found here.

Error Management
Flask allows to an error handler to a given HTTP status code. There are two types of errors that we will concentrate on in this blog post – application and route errors. Application errors refer to issues in the application code – catching the raised exceptions, etc.. Route errors are about missing or wrong URLs.

Route Errors
Flask provides developers with means to implement their own error handlers via the errorhandler decorator.

Where you need to specify the client or server error codes and to implement a method that returns the content of the page, plus the error code. More information can be found here.

Application Errors
You could either use try/except to handle an exception (where you know it may appear) or provide global error handler.

Example Log

Testing of the Error Handlers 
It is very easy to test the implemented error handlers in the Flask application.

The complete demo application, described in this blog post, can be found here.

In the next blog post I will describe how to secure your Flask application.