#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