Запись ошибок Python

Я хотел бы найти способ регистрировать каждую ошибку, из-за которой интерпретатор python перестает быть сохраненным в файле, а также печатается на экране. Причина, по которой я хотел бы сделать это, – это то, что я хочу сохранять статистику по типам ошибок, которые я делаю при написании кода, с целью найти способы избежать ошибок, которые я часто делаю в будущем.

Я пытаюсь сделать это, написав оболочку для интерпретатора python, используя модуль подпроцесса. В принципе, он запускает интерпретатор python, захватывает любой вывод, анализирует и сохраняет его в файл, печатает вывод и использует matplotlib для создания некоторых итоговых показателей. Тем не менее, у меня возникла проблема с получением вывода из моего сценария оболочки в режиме реального времени. Например, если скрипт, который я запускаю, является:

import os import time for x in range(10): print "testing" time.sleep(10) 

и я использую subprocess.Popen () с p.communicate (), оболочка будет ждать 100 секунд, а затем распечатать весь вывод. Я бы хотел, чтобы обертка была как можно более невидимой – в идеале в этом случае она будет печатать «тестирование» каждые 10 секунд.

Если бы кто-то мог указать мне на хороший способ сделать это, я был бы очень признателен.

Благодаря!

One Solution collect form web for “Запись ошибок Python”

Я считаю, что вы можете просто заменить sys.excepthook своей собственной функцией. Вы можете прочитать об этом в документации Python .

В принципе, это позволяет вам настраивать, что происходит, когда исключение просачивается до того момента, когда принудительный перевод интерпретатора Python прекращается. Вы используете его следующим образом:

 import sys def my_excepthook(type, value, tb): # you can log the exception to a file here print 'In My Exception Handler' # the following line does the default (prints it to err) sys.__excepthook__(type, value, tb) sys.excepthook = my_excepthook 

Возможно, вам также захочется посмотреть на модуль трассировки , чтобы форматировать трассировку, которую вы получаете.

  • ошибки фальшивки журнала с помощью mod_wsgi
  • добавление дополнительных полей в формы django-userena
  • Как использовать регистрацию paramiko?
  • Python Вход в Tkinter Text Widget
  • почему не работает пользователь регистрации?
  • Как сделать django-registration использовать мою настроенную UserCreationForm и UserChangeForm?
  • как направить python logger на список Tkinker?
  • Измените запись «print» на «tqdm.write», поэтому ведение журнала не мешает индикаторам выполнения
  •  
    Interesting Posts for Van-Lav

    Вставьте диаграмму pandas в файл Excel с помощью XlsxWriter

    Python UDP сокет отправляет узкое место (медленное / задержка случайным образом)

    Как отредактировать список фильтров набора запросов

    Где идут отпечатки при запуске Flask с Apache?

    Почему создание этого memoryview повышает значение ValueError только при назначении переменной?

    Комплектующие светильники в pytest 2.3

    Заполните полевые данные формы Django с данными Db

    Почему я вижу «TypeError: строковые индексы должны быть целыми»?

    easy_install запускается как терминал и закрывается сам по себе, как этого избежать

    Минимальный рабочий пример для документации пакета с использованием Sphinx в Python

    zip два значения из словаря в Python

    Есть ли список символов, похожих на английские буквы?

    нежелательное преобразование типа в pandas.DataFrame.update

    Самая длинная последовательная последовательность в массиве Unsorted

    Короткое слово Python, чтобы сказать «выбрать меньшее значение»?

    Python - лучший язык программирования в мире.