Drucken Sie StackTrace in Pyhton Log aus

Drucken Sie StackTrace in Pyhton Log aus
Eine Sammlung von Annäherungsaufrufen in einem bestimmten Moment ist in einer Stacktrace dargestellt. Wenn ein Programm eine Ausnahme erhöht, generiert Python eine Stacktrace, die auch als Traceback oder Backtrace bezeichnet wird. In diesem Stacktrace gibt es eine Vielzahl von Details, die genutzt werden können, um das Problem zu finden. Das Python -Protokollierungspaket verfügt über mehrere grundlegende Merkmale und verfügt über mehrere Protokollierungsebenen, einschließlich „Debug“, „Info“, „Warnung“, „Fehler“ und „kritisch“.

Beispiel 1: Drucken Sie Stacktrace in Python mit dem Traceback -Modul aus

In diesem Beispiel werden wir ein einfaches Code verwenden, um zu demonstrieren. Dieses Trackback-Paket enthält eine beliebte Funktion zum Sammeln, Speichern und Ausstellen der Stapelspuren aus Computersprachen. Es dupliziert die Stack Trace -Druckvorgänge eines Drehbuchs treu. Wenn Sie jemals die Stapelspur anzeigen müssen, ist dies unerlässlich.

Mit anderen Worten, eine Stapelverfolgung zeigt jede Operation an, die vor dem vorhanden ist, der zu dem Problem führte. Die wichtigsten Informationen werden immer über die letzte Zeile einer Stapelspur gemeldet, wenn der Fehler identifiziert wird. Alle Funktionsaufrufe im resultierenden Fehler können verwendet werden, um das Problem schnell zu lokalisieren und zu beheben.

Beginnen wir mit dem Implementieren des Code. In der folgenden Zeile erstellen wir dann ein Array und listen die Elemente mit einigen Werten auf. Die Werte der Array -Liste sind "7", "8", "9" und "10". In der Array -Liste stehen vier Werte. Diese Array -Liste wurde in der zuvor initialisierten Variablen „A“ gespeichert.

Anschließend verwenden wir den Begriff "Try" und den Wert "a = 6" in der folgenden Zeile. Wir verwenden die Versuchsblöcke in Python, um die Ausnahmen zu verwalten. Dieser Ansatz wird verwendet, um das Skript zu schreiben, das einen Fehler im Blockheader aufwirft. Ausnahmen sind im Wesentlichen Fehler, ähnlich wie Syntaxfehler. Während einer Ausnahme eines Programms ist die Ausnahmebehandlung die einzigartige Reaktion auf die Ausnahme. Wenn wir zum Skript zurückkehren, verwenden wir in der nächsten Zeile "außer" "außer".

Im Ausnahme von Block verwenden wir „Traceback.Print EXC () “, der für„ Druckausnahme “kurz ist. Wir verwenden die Funktion „print ()“ in dem Ausnahmbox, das „Programmende“ ist, damit diese Anweisung druckt, wenn die Ausnahme entsteht. Wenn nun eine Ausnahme in der Try -Box auftritt. Wenn eine Ausnahme nicht auftritt, wird der Ausnahmeblock vollständig übersprungen. Nachdem die Ausnahme geschieht, können wir in dem Code sehen, dass der Wert „6“ in das Try -Feld eingegeben wurde, obwohl er nicht in der Array -Liste liegt. Infolgedessen geht der Code sofort zum Ausnahmbox und druckt die Anweisung „Programmende“ in der Ausgabeanzeige aus.

Die verschiedenen Funktionsaufrufe, aus denen sich das Traceback zusammensetzt. Diese Operationen werden alle durch Zwei-Linie-Anweisungen dargestellt. Jeder Anruf beginnt mit dem Dateinamen, der Sequenznummer und dem Modulnamen, die alle den Speicherort des Codes angeben. Danach wird die Ausnahme -Print -Anweisung "Programmende" angezeigt, da der Wert "6" nicht in der deklarierten Liste war, was zur Ausgabe "Listenindex außerhalb der Reichweite" führt.

Beispiel 2: Drucken Sie Stacktrace in Python mit der Protokollierung aus.Ausnahme () Methode

In diesem Beispiel zeigen wir, wie man Pythons „Protokollierung“ verwendet.Ausnahme () ”Methode zur Ausgabe einer Stacktrace. Mit dem Protokollierungspaket in Python können wir die Fehler protokollieren und die Fehler und Ausnahmen aufzeichnen. Protokollierungsmodule geben uns eine Auswahl an Protokollierungsmodulen, einschließlich „Debug“, „Info“, „Warnung“, „Fehler“ und „kritisch“. Dies sind im Wesentlichen Schichten von Protokollierungsmodulen, um es einfach auszudrücken. Um eine Ausnahme mit einem Fehler in Python zu protokollieren, verwenden Sie die „Protokollierung.Ausnahme () ”Funktion. Diese Funktion fügt diesem Protokoll einen Bericht mit dem Fehlerstatus hinzu. Es wird angenommen, dass die Parameter zum Debuggen dienen. Die Informationen zur Ausnahme sind dem Protokollierungsbericht beigefügt. Der einzige Ort, an dem dieses Verfahren aufgerufen werden kann, sollte die Ausnahmebehandler sein.

Schauen wir uns nun den Code an. Zunächst importieren wir zwei Bibliotheken - die erste davon loggend und die zweite davon Traceback ist. Dann verwenden wir die "BasicConfig" -Methode mit "Protokollierung" und geben die Ebene als „Protokollierung an.Debuggen". Das einzige Argument, dass die Methode „getLogger ()“ nimmt, ist „Name“. Daher verwenden wir es, wenn wir die „Protokollierung verwenden.GetLogger -Funktion. Wenn ein Name angegeben ist, wird ein Verweis auf eine Logger -Instanz mit diesem Namen generiert. Andernfalls wird die Wurzel zurückgegeben. Auf das gleiche Logger -Objekt wird von vielen GetLogger () -Operationen mit derselben Identität verwiesen.

Dann versuchen wir es zu versuchen, und wie wir im Try -Block wissen, schreiben wir den Code, der eine Ausnahme hervorrufen könnte. In diesem Fall verwenden wir "myfunction ()" ". Wenn die gegebene Situation nicht übereinstimmt, tritt eine Ausnahme auf. Dann springt der Code sofort zum Block außerhalb des Blocks. In diesem Ausnahme -Blog verwenden wir die „Protokollierung.die Info". Darin schreiben wir die Nachricht, die wir drucken möchten, nämlich "Ausnahme ist stattgefunden". Dies liegt daran. Wenn der Fehler jedoch nicht auftritt, ignoriert er die gesamte Ausnahmemeldung.

Wir haben auch die "exc info = true" mit der Nachricht festgelegt. Der gesamte StackTrace wird in die Protokollierung aufgenommen, wenn die EXC -Informationen auf True gesetzt sind, ähnlich wie mit „Logger.Ausnahme()". Die einzige Unterscheidung ist, dass Sie die Protokollebene schnell von einem Fehler auf etwas anderes wechseln können, indem Sie den Logger lediglich austauschen.

Nachdem eine Ausnahme im Skript aufgetreten ist, ist die erste Ausgangszeile die Nachricht „Ausnahme“, gefolgt von der Protokollierungsstufe, die im Skript verwendet wurde, das "Info" verwendet wurde.Der Name des Protokolls wird in diesem Fall als Stamm. Anschließend wird der Traceback -Aufruf angezeigt und das Modul, die Zeile und die Dateinamen angezeigt. Schließlich ist die Fehlermeldung "Myfunktion" nicht definiert.

Sprechen wir über einen weiteren Code, der die Protokollierung verwendet. Die Ausnahme () -Methode beginnt mit dem Importieren der Bibliothek zur Protokollierung. Als nächstes werden zwei Variablen - "M" und "N" - initialisiert und die Werte von "7" bzw. "0" gegeben. Der Try -Block wird jetzt im nachfolgenden Schritt verwendet. Darin schreiben wir den Code, der eine Ausnahme hervorrufen könnte. Erstens deklarieren wir die Variable "o". Dann setzen wir das "M" geteilt durch "N". Dies führt zu einer Ausnahme, da der Nenner Null ist und wir keine Zahl durch Null teilen können, was bedeutet, dass die Fehler auftreten werden. Infolgedessen springt der Code zum außer Block, wo „Protokollierung.Fehler ”wird verwendet. Fehler ist die Protokollierungsstufe. Wenn eine Ausnahme auftritt, drucken wir eine Nachricht oder Erklärung mit der Aufschrift „Ausnahme aufgetreten“ und setzen "exc info = true" fest. Wenn wir es nicht auf True setzen, druckt es nur den Ausnahmeblock und zeigt die Traceback -Informationen nicht an.

Da wir in unserem Skript die Stufe „Fehler“ gewählt haben, zeigt es zunächst das Stamm. Die Traceback -Informationen, die den Dateinamen, die Zeilennummer und das Modul enthielten, werden dann angezeigt. Die nächste Zeile zeigt dann einen Fehlerbenachrichtigung, da der Nenner nicht Null sein kann. Und da der Nenner in diesem Code Null ist, wird der Fehler als Null-Divisor-Fehler bezeichnet.

Abschluss

In diesem Artikel haben wir uns über den Prozess des Druckens einer Stacktrace in einem Python -Protokoll sowie mit der Verwendung des Traceback -Moduls überprüft, um eine Stapelspur zu erstellen. Im ersten Beispiel wurde die Traceback -Bibliothek importiert und der Versuch und außer Methoden wurden verwendet. Der Code wurde in der Trybox geschrieben. Wenn eine Ausnahme auftritt. Im zweiten Beispiel haben wir die Protokollierung verwendet, die dem ersten Beispiel ähnlich ist. Die Ausnahme () -Methode verwendet die Protokollierungsebenen "Info" und "Fehler". Wenn eine Ausnahme eintritt, wird eine Ausnahmebericht aufgenommen.