Registrar errores usando Flask

Salman Mehmood 15 febrero 2024
Registrar errores usando Flask

Aprenderemos, con esta explicación, sobre el manejo de errores, específicamente sobre el registro de errores. Al final de este artículo, debe saber cómo registrar errores en un archivo y dónde ir para ver otras formas de registrar errores en Flask.

Registrar errores con la ayuda del módulo de registro en Flask

Por lo general, una aplicación de producción no estará en modo de depuración, por lo que la única forma en que podemos usar el módulo de registro es saber que hay un error. En este caso, se enviará a un archivo para que podamos verlo más tarde, depurarlo y solucionar el problema.

Esto no está habilitado de forma predeterminada; tenemos que agregar una función de registro a nuestra aplicación Flask. Es por eso que le mostraremos una aplicación Flask realmente básica en ejecución, que no está en modo de depuración.

from flask import Flask

app = Flask(__name__)


@app.route("/")
def Error_Los():
    return "The page without error"


if __name__ == "__main__":
    app.run()

Lo primero que hay que utilizar es el módulo de registro; necesitaremos importar esto. Es un módulo de Python incorporado, por lo que no necesitamos instalarlo si usamos Python 3.

Importaremos dos cosas desde el módulo logging: FileHandler y WARNING.

FileHandler es una forma de registrar errores en un archivo. La ADVERTENCIA es el nivel en el que queremos activar el registro; podría ser algo así como un error donde es más grave.

Pero una advertencia es buena cuando iniciamos sesión en un archivo porque podemos registrar todo lo que queramos.

from logging import FileHandler, WARNING

Ahora necesitaremos instanciar el FileHandler, y debemos pasar el nombre del archivo donde se guardará el error.

F_H = FileHandler("errorlogs.txt")

Ahora necesitaremos establecer el nivel del controlador de archivos usando setLevel(); es un método en el archivo de clase FileHandler, por lo que pasamos el nivel WARNING, que importamos del módulo logging.

Ahora necesitaremos usar el registrador para nuestra aplicación Flask, y luego usaremos addHandler, y dentro está el objeto del controlador de archivos que creamos anteriormente.

F_H.setLevel(WARNING)
app.logger.addHandler(F_H)

Si ejecutamos esta aplicación, se creará un archivo errorlogs.txt. Y una cosa que debe tener en cuenta es que solo registra aplicaciones pero no errores HTTP porque no es el tipo de error que está buscando; no es una aplicación.

Matraz de registro - Salida 1

Ahora intentaremos devolver 1/0, lo que fallará. Ejecutaremos de nuevo el servidor y reiniciaremos la página.

Obtendremos un error interno del servidor, lo que significa que es un error que HTTP no puede señalar, pero si miramos en el archivo de registro, vemos los detalles del error.

def Error_Los():
    return 1 / 0

Producción:

Matraz de registro - Salida 2

Si desea obtener más información sobre los otros controladores para el registro de errores, visite los documentos oficiales de aquí.

Código Python completo:

from flask import Flask
from logging import FileHandler, WARNING

app = Flask(__name__)
F_H = FileHandler("errorlogs.txt")
F_H.setLevel(WARNING)
app.logger.addHandler(F_H)


@app.route("/")
def Error_Los():
    return 1 / 0


if __name__ == "__main__":
    app.run()
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn