как зарегистрировать вывод фонового скрипта Python, если какое-то исключение не перехвачено - PullRequest
0 голосов
/ 27 октября 2011

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

Я знаю, как использовать модуль ведения журнала и try.. catch.. для регистрации исключений, но что, если я пропустил некоторые из них, есть ли способ также записать эти исключения?

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Обычный метод - использовать попытку / исключение Исключение при вызове самого высокого уровня (основная функция). Это в значительной степени гарантирует, что вы не «пропустили некоторые». Исключение соответствует несуществующим исключениям, поэтому он использует широкую сеть.

0 голосов
/ 27 октября 2011

Вы можете переназначить sys.stdout и sys.stderr для файловых дескрипторов. Они будут доступны после выхода вашего питона, если возникнет неперехваченное исключение. Примерно так:

import sys

sys.stdout = open('myOut.txt', 'w')
sys.stderr = open('myErr.txt', 'w')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...