Programación

Iniciar sesión en Python su guía única

Iniciar sesión en Python su guía única

El registro es un paso crucial que debe realizar un programador durante el desarrollo de software. Ayuda a los desarrolladores a realizar un seguimiento de los eventos que suceden durante la ejecución de un programa, lo que puede ser útil para el futuro proceso de depuración. Si es un alumno nuevo o está trabajando en un proyecto nuevo, es una buena práctica utilizar el registro para rastrear el flujo del código y resolver errores.

Al escribir programas cortos, la mayoría de nosotros generalmente ignoramos el registro, pero cuando el programa se vuelve complejo, es un paso esencial y útil del uso del registro para corregir los errores que impiden que el software se ejecute sin problemas. El registro no es más que escribir los eventos en el software en un archivo de registro o enviarlos al terminal.

El registro no solo se usa para depurar. También es un proceso útil para recopilar información, recopilar datos de uso y muchas otras tareas útiles. También es una de las funciones más habituales para los desarrolladores web no solo para detectar errores sino también para recopilar datos del usuario, como direcciones IP, que se pueden utilizar para análisis comerciales adicionales.

En Python, la mayoría de las funciones de registro las proporciona el Inicio sesión módulo presentado en la biblioteca estándar de Python, por lo que no tenemos que hacer ninguna configuración adicional. Veamos cómo usarlo para iniciar sesión en Python. Antes de seguir este tutorial, es necesario tener instalada la última versión de Python en su sistema. Si no tiene la última versión de Python instalada en su sistema, puede seguir nuestra guía paso a paso sobre la instalación y actualización de Python en Linux.

El módulo de registro de Python

El módulo de registro de Python es una de las bibliotecas de registro más utilizadas en Python. La mejor parte es que viene preinstalado con la biblioteca estándar de Python, por lo que no tenemos que hacer ninguna configuración o instalación. El módulo de registro es sólido y sencillo, lo que significa que es útil tanto para principiantes como para empresas. Para usar el módulo de registro en Python, necesitamos importarlo a nuestro programa como lo hago en la siguiente línea de código.

registro de importación

Ahora veamos una demostración de cómo podemos registrar algunos mensajes en la terminal. Simplemente copie el siguiente código en su IDE de Python favorito y ejecute.

importar registro de registro.advertencia ("Esto es una advertencia")

Al ejecutar el código anterior, obtendremos el resultado como se muestra en la imagen de abajo.

Como se ve en la salida, el programa imprime un mensaje de advertencia. El módulo de registro también tiene otros niveles de registro como información, error, etc., que facilitan nuestra tarea. Discutámoslos brevemente con ejemplos.

Niveles de registro de Python

Se pueden usar muchos niveles de registro para registrar diferentes mensajes en el nivel de gravedad. Los niveles que proporciona Python Inicio sesión módulo son

Estos niveles se muestran en orden decreciente de gravedad. Veamos cómo utilizar estos niveles en nuestro programa. Simplemente copie el siguiente código y ejecútelo en el IDE de Python.

importar registro de registro.Registro crítico ("Este es un mensaje crítico").error ("Este es un mensaje de error") registro.registro de advertencia ("Este es un mensaje de advertencia").registro de información ("Este es un mensaje de información").debug ("Este es un mensaje de depuración")

Al ejecutar el código anterior en el IDE, la salida que muestra el terminal se muestra en la imagen de abajo.

Como puede ver en la salida, los mensajes DEBUG e INFO no se imprimen en el terminal porque el módulo de registro, por defecto, registraba solo los mensajes de nivel de seguridad superior o igual a la advertencia. Para mostrar INFO y DEBUG en la terminal, necesitamos cambiar la configuración básica del registrador manualmente. Para hacerlo, podemos usar basicConfig (**kwargs) método proporcionado por el módulo de registro. Para ver una demostración simple de la configuración, simplemente ejecute el siguiente código en su IDE de Python.

importar registro de registro.basicConfig (nivel = registro.DEBUG) registro.Registro crítico ("Este es un mensaje crítico").error ("Este es un mensaje de error") registro.advertencia ("Este es un mensaje de advertencia") registro.registro de información ("Este es un mensaje de información").debug ("Este es un mensaje de depuración")

En el código anterior, hemos establecido el nivel de Inicio sesión.DEPURAR, lo que significa que todos los niveles que están por encima del nivel de depuración se registrarán. Por lo tanto, en el código anterior, todos los mensajes se registrarán como se muestra en la imagen de abajo.

Analicemos más el método basicConfig () del módulo de registro.

Configuraciones básicas

El módulo de registro proporciona un método muy útil basicConfig (** Kwargs), que se utiliza para establecer configuraciones para el registro de datos. Algunos de los parámetros de uso común de la función basicConfig () son:

Veamos cómo podemos usar estas configuraciones en el módulo de registro de Python explorando el ejemplo de una tras otra.

El parámetro de nivel se usa para establecer el nivel de gravedad, para ver una demostración práctica de cómo usarlo, copie el siguiente código en el IDE de Python y ejecute.

importar registro de registro.basicConfig (nivel = registro.INFO) registro.Registro crítico ("Este es un mensaje crítico").error ("Este es un mensaje de error") registro.registro de advertencia ("Este es un mensaje de advertencia").registro de información ("Este es un mensaje de información").debug ("Este es un mensaje de depuración")

Al ejecutar el código, puede ver el resultado, como se muestra en la imagen de abajo. Como puede ver, los mensajes que están por encima de los niveles de información se imprimen, pero el mensaje en el nivel de depuración no se imprime.

El parámetro de nivel es una configuración útil que debe realizarse para que los archivos de registro no sean demasiado grandes al contener datos innecesarios y solo tengan la información requerida.

Iniciar sesión en un archivo

Solo hemos visto cómo iniciar sesión en el terminal, pero iniciar sesión en el terminal no siempre es útil, ya que no podemos guardarlo para usarlo más adelante. Para una mejor solución, podemos imprimir los registros en un archivo de texto que guardamos y analizamos más tarde. Los registros son de texto y se pueden guardar en un archivo de texto de cualquier formato, pero se adopta universalmente para guardar los registros en un archivo con la .extensión de registro. Estos archivos se conocen como archivos de registro y se utilizan universalmente para almacenar registros de programas, aplicaciones web y otro software.

Podemos guardar registros en un archivo configurando la configuración del módulo de registro con la ayuda de la función basicConfig (). Necesitamos dar el nombre del archivo donde queremos guardar los registros en el parámetro de nombre de archivo de la función basicConfig (), luego de lo cual los registros se imprimirán automáticamente en el archivo de registro que especifiquemos. Veamos un ejemplo práctico para saber cómo funciona.

importar registro de registro.basicConfig (nivel = registro.INFO, filename = "mylog.log ") registro.Registro crítico ("Este es un mensaje crítico").error ("Este es un mensaje de error") registro.registro de advertencia ("Este es un mensaje de advertencia").registro de información ("Este es un mensaje de información").debug ("Este es un mensaje de depuración")

Al ejecutar el código, puede ver que se ha creado un nuevo archivo en el nombre del directorio de trabajo actual mylog.Iniciar sesión. Al abrir el archivo con un editor de texto, puede notar que los registros se guardaron en el archivo.

Si volvemos a ejecutar el código, veremos que el registro se agregará al archivo. Podemos cambiar esto especificando el parámetro filemode en la función basiconfig (). De forma predeterminada, el parámetro filemode tiene el valor "a", que significa anexar. Pero a veces también queremos eliminar los datos registrados previamente y escribir los nuevos registros solo en el archivo. Para hacer esto, podemos darle al parámetro filemode el valor "w", que significa escribir, y borra cualquier dato anterior en el archivo y escribe los nuevos. Para una demostración, vea el siguiente ejemplo.

importar registro de registro.basicConfig (nivel = registro.INFO, filename = "mylog.log ", filemode =" w ") registro.Registro crítico ("Este es un mensaje crítico").error ("Este es un mensaje de error") registro.registro de advertencia ("Este es un mensaje de advertencia").registro de información ("Este es un mensaje de información").debug ("Este es un mensaje de depuración")

Al ejecutar el código anterior, puede notar que los registros anteriores presentes en el archivo se han eliminado del archivo y se han agregado los nuevos registros. Cada vez que ejecutamos el código, se agregarán los nuevos registros y se eliminará el anterior, lo cual es útil cuando no necesitamos los registros para un uso posterior.

Formatear los registros

Hemos visto que los registros de salida tienen el diseño predeterminado, pero podemos cambiar el formato configurando el parámetro de formato de la función basicConfig (). Veamos una demostración práctica para saber cómo podemos usar el parámetro de formato en la función basicConfig () para cambiar el formato del registro.

importar registro de registro.basicConfig (nivel = registro.INFO, formato = "% (nombre de archivo) s:% (nombre de nivel) s:% (mensaje) s") registro.Registro crítico ("Este es un mensaje crítico").error ("Este es un mensaje de error") registro.registro de advertencia ("Este es un mensaje de advertencia").registro de información ("Este es un mensaje de información").debug ("Este es un mensaje de depuración")

La salida del código anterior es como se muestra en la imagen de abajo.

Como puede ver en la salida, también se ha mostrado el nombre del archivo. Podemos usar el parámetro de formato para indicar muchos otros formatos, analicemos algunos de ellos.

% (asctime) s: Esto se usa para mostrar el tiempo legible por humanos en los registros. Para ver cómo muestra el tiempo, ejecute el siguiente código en el IDE de Python.

importar registro de registro.basicConfig (nivel = registro.INFO, format = "% (asctime) s:% (message) s") registro.advertencia ("Este es un mensaje de advertencia")

Al ejecutar el código, puede ver el resultado, como se muestra en la imagen de abajo.

% (creado) f: Esto mostrará la hora en la que se crea el registro.

% (nombre de archivo) s: Se utiliza para mostrar el nombre del archivo en el mensaje de registro. Para ver cómo funciona, simplemente ejecute el siguiente código de ejemplo en su Python IDE.

importar registro de registro.basicConfig (nivel = registro.INFO, formato = "% (asctime) s:% (nombre de archivo) s:% (mensaje) s") registro.advertencia ("Este es un mensaje de advertencia")

La salida que proporciona el código se muestra en la siguiente imagen. En la salida, se ha mostrado el nombre del archivo. Esto es útil cuando se trabaja en un proyecto que involucra varios archivos para que podamos obtener rápidamente el archivo que tiene el error.

% (nombre de nivel) s: Se utiliza para mostrar el nombre del nivel utilizado como ADVERTENCIA, DEPURACIÓN, etc.

% (levelno) s: Se utiliza para imprimir el valor numérico del nivel del que forma parte el mensaje.

% (lineno) d: Se utiliza para imprimir el número de línea de la línea actual, que muestra el mensaje. Esto es muy útil ya que nos da el número de línea donde debemos ver si hay un error, por lo que ayuda al proceso de depuración. Veamos un código de ejemplo para ver cómo usar esto para formar la salida de los registros.

Formato de registro de importación = '% (asctime) s:% (nombre de archivo) s:% (lineno) d:% (mensaje) s' registro.basicConfig (nivel = registro.INFO, formato = Formato) registro.advertencia ("Este es un mensaje de advertencia")

Este código también imprimirá el número de línea, como se muestra en la imagen de abajo.

% (mensaje) s: Se utiliza para mostrar el mensaje que hemos registrado.

% (nombre de ruta) s: Se utiliza para mostrar la ruta completa del archivo de código fuente.

% (proceso) d: Esto mostrará la identificación del proceso si está disponible.

% (nombre de proceso) s: Esto mostrará el nombre del proceso si está disponible.

% (hilo) d: Esto mostrará el ID del hilo si está disponible.

% (threadName) s: Esto mostrará el nombre del hilo si está disponible.

Registro de datos variables

Hemos proporcionado los mensajes en los registros por nosotros mismos, que son datos estáticos. Aún así, en las aplicaciones del mundo real, los datos que registramos serán principalmente información dinámica de nuestra aplicación. Para hacer esto, necesitamos generar las variables con el registro de mensajes. Podemos hacer esto de muchas formas. Por ejemplo, podemos incluir las variables y formatear la cadena con marcadores de posición y luego pasarlos al registro de mensajes para que los valores de las variables se muestren en los registros.

Por ejemplo, consulte el siguiente código; puede copiar el código y ejecutarlo en su Python IDE.

import logging var_message = Registro de "error interno".advertencia ("El servidor se ha detenido debido a% s", var_message)

Al ejecutar el código, verá la salida, como se muestra en la imagen de abajo. Como puede ver en la imagen que el valor almacenado en la variable también está impreso en la pantalla.

También podemos mostrar variables en registros usando f-strings, que se introducen en python 3.6. Pero para usar las cadenas f, necesitará Python 3.6 o mayor instalado en su sistema. Puede verificar qué versión de Python está instalada en su sistema ejecutando el siguiente comando en la terminal.

python --version # para python 2 en Linux python3 --version # para python 3 en Linux

Esto imprimirá la versión de Python que está utilizando en su sistema. Es una buena práctica utilizar la última versión de Python para obtener un mejor rendimiento; puede ver nuestra guía para actualizar su versión de Python en Linux.

Para formatear cadenas usando f-strings en python, necesitamos usar la siguiente sintaxis de código. Puede copiar y ejecutar el código en su IDE de Python favorito.

import logging var_message = Registro de "error interno".advertencia (f "El servidor se detuvo debido a var_message")

Al ejecutar el código, obtendrá un resultado similar al que obtenemos al ejecutar el código anterior. Pero cuando vemos el código, podemos notar la f al principio de la cadena, que representa que es una cadena f, y podemos usar directamente variables en cadenas f poniéndolas entre llaves.

Seguimiento de la pila de registros

El módulo de registro también se puede utilizar para capturar seguimientos de pila. Los seguimientos de pila son los mensajes de excepción que se lanzan cuando se produce un error en el programa. Podemos capturar la excepción configurando el parámetro exc_info en True mientras llamamos a la función de registro. Este parámetro es útil ya que podemos registrar el mensaje de excepción completo con nuestro mensaje de error en un archivo o pantalla de terminal.

Para obtener una demostración práctica y saber cómo podemos realizar los seguimientos de la pila, copie el siguiente código en su Python IDE y ejecute.

intento de registro de importación: a = 1/0 excepto Excepción como e: registro.error ("Se ha producido un error", exc_info = True)

Al ejecutar el código, la excepción se registrará en el terminal. Verá la salida del código, como se muestra en la imagen de abajo. También puede registrar la excepción en un archivo usando el parámetro de nombre de archivo en el método basicConfig (), como discutimos anteriormente.

Este método también es fundamental en la construcción de la aplicación extensa, ya que podemos tener un manejo de excepciones con el registro, lo cual es excelente para el proceso de depuración.

Objetos del registrador

El módulo de registro también proporciona algunas clases útiles que se pueden utilizar para un mejor registro, principalmente para una aplicación más amplia. Veamos algunas de las clases más utilizadas del módulo de registro y qué y cómo funcionan.

Si desea obtener detalles completos sobre cómo usar estas clases, puede consultar la documentación oficial del módulo de registro de Python.

Conclusión

En este artículo, hemos aprendido los conceptos básicos para iniciar sesión en Python. El módulo de registro es una forma sencilla y poderosa de iniciar sesión en Python. Suponga que no está registrando hasta ahora, hoy es el día para comenzar con el registro mientras lee el artículo y aprende lo fácil que es usar el registro en Python. Ahora puede usar el registro en aplicaciones pequeñas y significativas.

Si inicia sesión correctamente, será útil de una forma u otra. Te aconsejo que comiences a usarlo desde pequeños programas, ya que te ayudará a tener un buen conocimiento de la cosa o dos y no tendrá precio para grandes proyectos. También puede querer ver cómo trabajar con bases de datos SQLite en python. 

OpenTTD frente a Simutrans
Crear su propia simulación de transporte puede ser divertido, relajante y extremadamente atractivo. Es por eso que debes asegurarte de probar tantos j...
Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....
SuperTuxKart para Linux
SuperTuxKart es un gran título diseñado para ofrecerte la experiencia Mario Kart de forma gratuita en tu sistema Linux. Es bastante desafiante y diver...