Imprimir Stacktrace en Pyhton Log

Imprimir Stacktrace en Pyhton Log
Una colección de llamadas de enfoque en un momento en particular se representa en una StackTrace. Cuando un programa plantea una excepción, Python genera una StackTrace, también conocida como traza o rastreo. Hay una variedad de detalles en este stacktrace que se puede explotar para localizar el problema. El paquete de registro de Python viene con varias características fundamentales y tiene múltiples niveles de registro, incluyendo "depuración", "información", "advertencia", "error" y "crítico".

Ejemplo 1: Imprima StackTrace en Python utilizando el módulo de rastreo

En este ejemplo, utilizaremos un código simple para demostrar cómo implementar el módulo de rastreo de Python para imprimir el rastro de la pila. Este paquete Trackback incluye una característica más destacada para coleccionar, almacenar y exhibir los rastros de la pila de lenguajes de computadora. Duplica fielmente las operaciones de impresión de rastreo de pila de un script. Si alguna vez necesita ver el rastro de la pila, es esencial.

En otras palabras, una traza de pila muestra cada operación que vino antes de la que resultó en el problema. La información más importante siempre se informa en la última línea de un rastro de pila, que es cuando se identifica la falla. Todas las llamadas de función en el error resultante se pueden usar para localizar y resolver rápidamente el problema.

Comencemos por implementar el código mediante la importación de la biblioteca TraceBack Python. Luego, en la siguiente línea, creamos una matriz y enumeramos los elementos con algunos valores. Los valores de la lista de la matriz son "7", "8", "9" y "10". Hay cuatro valores en la lista de matrices. Esta lista de matriz se guardó en la variable inicializada previamente "A".

Después de eso, utilizamos el término "prueba" y el valor "a = 6" en la siguiente línea. Utilizamos los bloques Try-Except en Python para administrar las excepciones. Este enfoque se utiliza para escribir el script que podría plantear un error en el encabezado del bloque. Las excepciones son esencialmente errores, similares a los errores de sintaxis. Durante una excepción de un programa, el manejo de excepciones es el acto único de responder a la excepción. Volviendo al script, usamos "excepto" en la siguiente línea.

En el bloque excepto, usamos "traza.imprimir exc () ", que es corto para la" excepción de impresión ". Usamos la función "print ()" dentro del cuadro de excepción que es "final del programa" para que esta declaración se imprima cuando surge la excepción. Ahora, si se produce una excepción en la caja de try, el programa se mueve inmediatamente a los bloques excepto y continúa. Si no se produce una excepción, el bloque de excepción se omite por completo. Ahora que la excepción ocurre, podemos ver en el código que el valor "6" se ingresó en la casilla Try a pesar de que no está en la lista de matriz. Como resultado, el código inmediatamente va al cuadro de excepción e imprime la instrucción "finalización del programa" en la pantalla de salida.

Las diferentes llamadas de funciones que componen el rastreo se ordenan desde el más reciente hasta el menos reciente, desde la parte superior hasta la parte superior. Todas estas operaciones están representadas por declaraciones de dos líneas. Cada llamada comienza con el nombre del archivo, el número de secuencia y el nombre del módulo, todo lo cual indica la ubicación del código. Después de eso, muestra la declaración de impresión de excepción "Fin del programa" ya que el valor "6" no estaba en la lista declarada, lo que da como resultado la salida de "Índice de lista fuera de rango".

Ejemplo 2: Imprimir Stacktrace en Python utilizando el registro.Método de excepción ()

En este ejemplo, demostraremos cómo usar el "registro de Python.Método de excepción () "para obtener un StackTrace. El paquete de registro en Python nos permite registrar los errores y registrar los errores y las excepciones. Los módulos de registro nos dan una selección de módulos de registro que incluyen "depuración", "información", "advertencia", "error" y "crítico". Estas son esencialmente capas de módulos de registro, para decirlo en pocas palabras. Para registrar una excepción con un error en Python, use el "Registro.Función de excepción () ". Esta función agrega un informe con el estado de error a este registrador. Se cree que los parámetros son para la depuración. La información sobre la excepción se adjunta al informe de registro. La única ubicación para invocar este procedimiento debe ser los manejadores de excepción.

Ahora, veamos el código. Primero, importamos dos bibliotecas, la primera de las cuales es el registro y la segunda es el rastreo. Luego, usamos el método "BasicConfig" con "Registro" y especificamos el nivel como "Registro.Depurar". El único argumento que toma el método "getLogger ()" es "nombre". Por lo tanto, lo usamos al usar el "registro.Función GetLogger ". Si se da un nombre, se genera una referencia a una instancia de registrador con ese nombre; de lo contrario, se devuelve la raíz. El mismo objeto Logger se hace referencia a las operaciones getLogger () con la misma identidad.

Luego, solemos probar, y como sabemos en el bloque de try, escribimos el código que podría plantear una excepción. En este caso, usamos "myFunction ()". Si la situación dada no coincide, se produce una excepción. Luego, el código inmediatamente salta al bloque excepto. En este blog de excepción, usamos el "registro.información ". Dentro de él, escribimos el mensaje que queremos imprimir, que es "Excepción que se realizó". Esto se debe a que si ocurre una excepción, simplemente ocurre un error, entonces muestra este mensaje en la pantalla. Pero si el error no ocurre, ignora todo el mensaje de excepción.

También establecemos la "Info EXC = True" con el mensaje. Todo el StackTrace se incluirá en el registro cuando la información EXS se establece en True, similar a lo que sucede con "Logger.excepción()". La única distinción es que puede cambiar rápidamente el nivel de registro de error a otra cosa simplemente intercambiando el registrador.

Ahora que se produjo una excepción en el script, la primera línea de salida es el mensaje "Excepción realizada" seguido del nivel de registro que se usó en el script que es "Información."El nombre del registrador aparece como la raíz en este caso. Luego, aparece la llamada de traza, que muestra los nombres de módulo, línea y archivo. Finalmente, el mensaje de error "MyFunction" no está definido.

Hablemos de un código más que utiliza el registro. El método de excepción () comienza importando la biblioteca para registrarse. A continuación, se inicializan dos variables: "M" y "N" y se les da los valores de "7" y "0", respectivamente. El bloque de try ahora se usa en el paso posterior. Dentro de él, escribimos el código que podría causar una excepción. Primero, declaramos la variable "O". Luego, establecemos eso "M" dividido por "n". Esto causa una excepción porque el denominador es cero y no podemos dividir ningún número por cero, lo que significa que surgen los errores. Como resultado, el código salta al bloque excepto donde "registro.Se utiliza un error "se usa. El error es el nivel de registro. Si se produce una excepción, imprimimos un mensaje o una declaración que dice: "Se produjo una excepción" y establecemos "EXC Info = True". Si no lo establecemos en True, solo imprime el bloque de excepciones y no muestra la información de trazas.

Debido a que elegimos el nivel de "error" en nuestro script, primero muestra la raíz como el nombre del registrador, seguido del mensaje "Excepción ocurrió". Luego se muestra la información de rastreo que incluía el nombre del archivo, el número de línea y el módulo. La siguiente línea muestra un aviso de error ya que el denominador no puede ser cero. Y dado que el denominador es cero en este código, el error se conoce como un error de divisor cero.

Conclusión

En este artículo, revisamos el proceso de imprimir una StackTrace en un registro de Python, así como cómo usar el módulo de rastreo para crear un rastro de pila. En el primer ejemplo, se importó la biblioteca de rastreo y se utilizaron los métodos intento y excepto. El código fue escrito en la casilla de prueba. Si ocurre una excepción, salta rápidamente al bloque de excepciones y muestra la declaración de excepción en la pantalla. En el segundo ejemplo, utilizamos el registro similar al primer ejemplo. El método de excepción () utiliza los niveles de registro de "información" y "error". Si se produce una excepción, muestra una declaración de excepción.