2 Stimmen

Ausnahmen in eine Datei drucken

Wie man nur die Ausnahmen druckt using python die in der Datei /tmp/exceptions.log vorhanden ist, wobei alle Debug-Anweisungen ignoriert werden, ist der Schnappschuss der Ausnahme unten angegeben.

     Traceback (most recent call last):
       File "/usr/site/bank/views.py", line 1695, in importmydata
         o.save()
       File "/usr/site/cl/django/django/db/models/base.py", line 435, in save
         self.save_base(using=using, force_insert=force_insert, force_update=force_update)

     IntegrityError: (1048, "Column 'option_b' cannot be null")
     2011-04-14 11:57:40,895 DEBUG In exception
     2011-04-14 11:57:40,915 DEBUG No resource found
     2011-04-14 11:57:40,926 DEBUG Name
     2011-04-14 11:57:40,915 DEBUG No resource found
     2011-04-14 11:57:40,915 DEBUG No resource found
     2011-04-14 11:57:40,915 DEBUG No resource found
     2011-04-14 11:57:40,915 DEBUG No resource found
     Traceback (most recent call last):
       File "/usr/site/bank/views.py", line 1695, in importmydata
         o.save()
       File "/usr/site/cl/django/django/db/models/base.py", line 435, in save
         self.save_base(using=using, force_insert=force_insert, force_update=force_update)

     IntegrityError: (1048, "Column 'option_b' cannot be null")
     2011-04-14 11:57:40,895 DEBUG In exception
     2011-04-14 11:57:40,915 DEBUG No resource found
     2011-04-14 11:57:40,926 DEBUG Name

1voto

Zaur Nasibov Punkte 21570

Der einfachste Weg ist die Verwendung von grep mit Ausschluss-Flag, z. B.

grep -v DEBUG /tmp/exceptions.log

Damit werden die Zeilen gedruckt, die nicht enthalten die Zeichenkette "DEBUG".

0voto

Senthil Kumaran Punkte 50813
>>> import re
>>> pat = re.compile(r'(\w+:\s.*\n)')
>>> pat.findall(c) # c is your logs content
['IntegrityError: (1048, "Column \'option_b\' cannot be null")\n', 'IntegrityError: (1048, "Column \'option_b\' cannot be null")\n']
>>>

0voto

Garrett Berg Punkte 2515

Können Sie auch "logview" verwenden, das in der PyPI verfügbar ist. Wenn Sie sich die neueste Version meines Codes für PyWorkbooks ansehen (hier https://sourceforge.net/projects/pyworkbooks/ ), gibt es eine easy_log-Datei, die die Protokollierung für die Anwendung logview einrichtet.

logview ist eine hervorragende Benutzeroberfläche, mit der Sie z. B. Eingaben filtern können.

0voto

Elalfer Punkte 5186

Wenn Sie die try-except-Struktur verwenden, können Sie etwa so vorgehen:

try:
    foo()
except Exception,ex:
    print "Exception %s"%str(ex) # Output exception
    print "Unexpected error:", sys.exc_info()[0] # Exception message
    import traceback
    traceback.print_exc() # Output full traceback if you want one

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X