Я хотел бы записать весь вывод Python script. Я пробовал:
import sys
log = []
class writer(object):
def write(self, data):
log.append(data)
sys.stdout = writer()
sys.stderr = writer()
Теперь, если я "распечатаю" что-то ", он заносится в журнал. Но если я сделаю, например, некоторую синтаксическую ошибку, скажем," напечатайте "что-то #", она не будет регистрироваться - она войдет в консоль вместо этого.
Как я также фиксирую ошибки из интерпретатора Python?
Я видел возможное решение здесь:
http://www.velocityreviews.com/forums/showpost.php?p=1868822&postcount=3
но второй пример записывается в /dev/null - это не то, что я хочу. Я хотел бы записать его в список, например, мой пример выше или StringIO или такой...
Кроме того, предпочтительно, я не хочу создавать подпроцесс (и читать его stdout и stderr в отдельном потоке).