Печать исключений в файле

#python

#python

Вопрос:

Как напечатать только те исключения using python , которые присутствуют в файле /tmp/exceptions.регистрируйте игнорирование всех инструкций debug.Снимок исключения приведен ниже..

      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
  

Ответ №1:

Самый простой способ — использовать grep с флагом исключения, например

 grep -v DEBUG /tmp/exceptions.log
  

При этом будут напечатаны строки, которые не содержат строку «DEBUG».

Ответ №2:

 >>> 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']
>>> 
  

Ответ №3:

вы также могли бы использовать «logview», доступный в PyPI. Если вы посмотрите на самую последнюю версию моего кода для PyWorkbooks (здесь https://sourceforge.net/projects/pyworkbooks /), существует файл easy_log, который настраивает ведение журнала в приложении logview.

logview — отличный графический интерфейс и позволяет вам делать такие вещи, как фильтрация входных данных.

Ответ №4:

Если вы используете структуру try-except, вы можете сделать что-то вроде:

 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