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.
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:
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()
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